]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 5.4
authorSasha Levin <sashal@kernel.org>
Sat, 12 Feb 2022 05:44:12 +0000 (00:44 -0500)
committerSasha Levin <sashal@kernel.org>
Sat, 12 Feb 2022 05:44:12 +0000 (00:44 -0500)
Signed-off-by: Sasha Levin <sashal@kernel.org>
15 files changed:
queue-5.4/drm-panel-orientation-quirks-add-quirk-for-the-1netb.patch [new file with mode: 0644]
queue-5.4/kvm-nvmx-evmcs-filter-out-vm_exit_save_vmx_preemptio.patch [new file with mode: 0644]
queue-5.4/net-sched-clarify-error-message-when-qdisc-kind-is-u.patch [new file with mode: 0644]
queue-5.4/net-stmmac-dwmac-sun8i-use-return-val-of-readl_poll_.patch [new file with mode: 0644]
queue-5.4/nfs-nfs4clinet-check-the-return-value-of-kstrdup.patch [new file with mode: 0644]
queue-5.4/nfsv4-expose-nfs_parse_server_name-function.patch [new file with mode: 0644]
queue-5.4/nfsv4-only-print-the-label-when-its-queried.patch [new file with mode: 0644]
queue-5.4/nfsv4-remove-zero-number-of-fs_locations-entries-err.patch [new file with mode: 0644]
queue-5.4/nfsv4.1-fix-uninitialised-variable-in-devicenotify.patch [new file with mode: 0644]
queue-5.4/pm-hibernate-remove-register_nosave_region_late.patch [new file with mode: 0644]
queue-5.4/scsi-myrs-fix-crash-in-error-case.patch [new file with mode: 0644]
queue-5.4/scsi-qedf-fix-refcount-issue-when-logo-is-received-d.patch [new file with mode: 0644]
queue-5.4/scsi-target-iscsi-make-sure-the-np-under-each-tpg-is.patch [new file with mode: 0644]
queue-5.4/series
queue-5.4/usb-dwc2-gadget-don-t-try-to-disable-ep0-in-dwc2_hso.patch [new file with mode: 0644]

diff --git a/queue-5.4/drm-panel-orientation-quirks-add-quirk-for-the-1netb.patch b/queue-5.4/drm-panel-orientation-quirks-add-quirk-for-the-1netb.patch
new file mode 100644 (file)
index 0000000..4ae08ce
--- /dev/null
@@ -0,0 +1,53 @@
+From 5940c39178e6cf6228aa6a8dee8e87a62cc0d3d3 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 13 Jan 2022 08:06:20 +0800
+Subject: drm: panel-orientation-quirks: Add quirk for the 1Netbook OneXPlayer
+
+From: Raymond Jay Golo <rjgolo@gmail.com>
+
+[ Upstream commit d3cbc6e323c9299d10c8d2e4127c77c7d05d07b1 ]
+
+The 1Netbook OneXPlayer uses a panel which has been mounted
+90 degrees rotated. Add a quirk for this.
+
+Signed-off-by: Raymond Jay Golo <rjgolo@gmail.com>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Link: https://patchwork.freedesktop.org/patch/msgid/20220113000619.90988-1-rjgolo@gmail.com
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpu/drm/drm_panel_orientation_quirks.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/drivers/gpu/drm/drm_panel_orientation_quirks.c b/drivers/gpu/drm/drm_panel_orientation_quirks.c
+index 9d1bd8f491ad7..448c2f2d803a6 100644
+--- a/drivers/gpu/drm/drm_panel_orientation_quirks.c
++++ b/drivers/gpu/drm/drm_panel_orientation_quirks.c
+@@ -115,6 +115,12 @@ static const struct drm_dmi_panel_orientation_data lcd1280x1920_rightside_up = {
+       .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP,
+ };
++static const struct drm_dmi_panel_orientation_data lcd1600x2560_leftside_up = {
++      .width = 1600,
++      .height = 2560,
++      .orientation = DRM_MODE_PANEL_ORIENTATION_LEFT_UP,
++};
++
+ static const struct dmi_system_id orientation_data[] = {
+       {       /* Acer One 10 (S1003) */
+               .matches = {
+@@ -261,6 +267,12 @@ static const struct dmi_system_id orientation_data[] = {
+                 DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Default string"),
+               },
+               .driver_data = (void *)&onegx1_pro,
++      }, {    /* OneXPlayer */
++              .matches = {
++                DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ONE-NETBOOK TECHNOLOGY CO., LTD."),
++                DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "ONE XPLAYER"),
++              },
++              .driver_data = (void *)&lcd1600x2560_leftside_up,
+       }, {    /* Samsung GalaxyBook 10.6 */
+               .matches = {
+                 DMI_EXACT_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
+-- 
+2.34.1
+
diff --git a/queue-5.4/kvm-nvmx-evmcs-filter-out-vm_exit_save_vmx_preemptio.patch b/queue-5.4/kvm-nvmx-evmcs-filter-out-vm_exit_save_vmx_preemptio.patch
new file mode 100644 (file)
index 0000000..22effca
--- /dev/null
@@ -0,0 +1,43 @@
+From 8eced0e1de8b0e7d1dd849ecf5159cc9b4c85e44 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 12 Jan 2022 18:01:31 +0100
+Subject: KVM: nVMX: eVMCS: Filter out VM_EXIT_SAVE_VMX_PREEMPTION_TIMER
+
+From: Vitaly Kuznetsov <vkuznets@redhat.com>
+
+[ Upstream commit 7a601e2cf61558dfd534a9ecaad09f5853ad8204 ]
+
+Enlightened VMCS v1 doesn't have VMX_PREEMPTION_TIMER_VALUE field,
+PIN_BASED_VMX_PREEMPTION_TIMER is also filtered out already so it makes
+sense to filter out VM_EXIT_SAVE_VMX_PREEMPTION_TIMER too.
+
+Note, none of the currently existing Windows/Hyper-V versions are known
+to enable 'save VMX-preemption timer value' when eVMCS is in use, the
+change is aimed at making the filtering future proof.
+
+Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
+Message-Id: <20220112170134.1904308-3-vkuznets@redhat.com>
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/x86/kvm/vmx/evmcs.h | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/arch/x86/kvm/vmx/evmcs.h b/arch/x86/kvm/vmx/evmcs.h
+index 07ebf6882a458..632bed227152e 100644
+--- a/arch/x86/kvm/vmx/evmcs.h
++++ b/arch/x86/kvm/vmx/evmcs.h
+@@ -58,7 +58,9 @@ DECLARE_STATIC_KEY_FALSE(enable_evmcs);
+        SECONDARY_EXEC_SHADOW_VMCS |                                   \
+        SECONDARY_EXEC_TSC_SCALING |                                   \
+        SECONDARY_EXEC_PAUSE_LOOP_EXITING)
+-#define EVMCS1_UNSUPPORTED_VMEXIT_CTRL (VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL)
++#define EVMCS1_UNSUPPORTED_VMEXIT_CTRL                                        \
++      (VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL |                           \
++       VM_EXIT_SAVE_VMX_PREEMPTION_TIMER)
+ #define EVMCS1_UNSUPPORTED_VMENTRY_CTRL (VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL)
+ #define EVMCS1_UNSUPPORTED_VMFUNC (VMX_VMFUNC_EPTP_SWITCHING)
+-- 
+2.34.1
+
diff --git a/queue-5.4/net-sched-clarify-error-message-when-qdisc-kind-is-u.patch b/queue-5.4/net-sched-clarify-error-message-when-qdisc-kind-is-u.patch
new file mode 100644 (file)
index 0000000..97a11e3
--- /dev/null
@@ -0,0 +1,41 @@
+From 19a3b624f0bd7e0527301097c2d382822de72218 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 18 Jan 2022 14:19:09 -0300
+Subject: net: sched: Clarify error message when qdisc kind is unknown
+
+From: Victor Nogueira <victor@mojatatu.com>
+
+[ Upstream commit 973bf8fdd12f0e70ea351c018e68edd377a836d1 ]
+
+When adding a tc rule with a qdisc kind that is not supported or not
+compiled into the kernel, the kernel emits the following error: "Error:
+Specified qdisc not found.". Found via tdc testing when ETS qdisc was not
+compiled in and it was not obvious right away what the message meant
+without looking at the kernel code.
+
+Change the error message to be more explicit and say the qdisc kind is
+unknown.
+
+Signed-off-by: Victor Nogueira <victor@mojatatu.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/sched/sch_api.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
+index e70f990334083..6f36df85d23d8 100644
+--- a/net/sched/sch_api.c
++++ b/net/sched/sch_api.c
+@@ -1195,7 +1195,7 @@ static struct Qdisc *qdisc_create(struct net_device *dev,
+       err = -ENOENT;
+       if (!ops) {
+-              NL_SET_ERR_MSG(extack, "Specified qdisc not found");
++              NL_SET_ERR_MSG(extack, "Specified qdisc kind is unknown");
+               goto err_out;
+       }
+-- 
+2.34.1
+
diff --git a/queue-5.4/net-stmmac-dwmac-sun8i-use-return-val-of-readl_poll_.patch b/queue-5.4/net-stmmac-dwmac-sun8i-use-return-val-of-readl_poll_.patch
new file mode 100644 (file)
index 0000000..dc15e16
--- /dev/null
@@ -0,0 +1,42 @@
+From fd455308a4149625ee6bc3c6f49b41387d0d1d76 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 27 Jan 2022 00:52:15 +0800
+Subject: net: stmmac: dwmac-sun8i: use return val of readl_poll_timeout()
+
+From: Jisheng Zhang <jszhang@kernel.org>
+
+[ Upstream commit 9e0db41e7a0b6f1271cbcfb16dbf5b8641b4e440 ]
+
+When readl_poll_timeout() timeout, we'd better directly use its return
+value.
+
+Before this patch:
+[    2.145528] dwmac-sun8i: probe of 4500000.ethernet failed with error -14
+
+After this patch:
+[    2.138520] dwmac-sun8i: probe of 4500000.ethernet failed with error -110
+
+Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
+Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
+index 2f6258ca95155..7c73d296b940d 100644
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
+@@ -718,7 +718,7 @@ static int sun8i_dwmac_reset(struct stmmac_priv *priv)
+       if (err) {
+               dev_err(priv->device, "EMAC reset timeout\n");
+-              return -EFAULT;
++              return err;
+       }
+       return 0;
+ }
+-- 
+2.34.1
+
diff --git a/queue-5.4/nfs-nfs4clinet-check-the-return-value-of-kstrdup.patch b/queue-5.4/nfs-nfs4clinet-check-the-return-value-of-kstrdup.patch
new file mode 100644 (file)
index 0000000..eec6c45
--- /dev/null
@@ -0,0 +1,40 @@
+From df19501d8edbe52298eb3bd7f9f5619e886a02e8 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 17 Dec 2021 01:01:33 +0800
+Subject: nfs: nfs4clinet: check the return value of kstrdup()
+
+From: Xiaoke Wang <xkernel.wang@foxmail.com>
+
+[ Upstream commit fbd2057e5329d3502a27491190237b6be52a1cb6 ]
+
+kstrdup() returns NULL when some internal memory errors happen, it is
+better to check the return value of it so to catch the memory error in
+time.
+
+Signed-off-by: Xiaoke Wang <xkernel.wang@foxmail.com>
+Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/nfs/nfs4client.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/fs/nfs/nfs4client.c b/fs/nfs/nfs4client.c
+index 8cace8350fa3d..3671a51fe5ebc 100644
+--- a/fs/nfs/nfs4client.c
++++ b/fs/nfs/nfs4client.c
+@@ -1293,8 +1293,11 @@ int nfs4_update_server(struct nfs_server *server, const char *hostname,
+       }
+       nfs_put_client(clp);
+-      if (server->nfs_client->cl_hostname == NULL)
++      if (server->nfs_client->cl_hostname == NULL) {
+               server->nfs_client->cl_hostname = kstrdup(hostname, GFP_KERNEL);
++              if (server->nfs_client->cl_hostname == NULL)
++                      return -ENOMEM;
++      }
+       nfs_server_insert_lists(server);
+       return nfs_probe_destination(server);
+-- 
+2.34.1
+
diff --git a/queue-5.4/nfsv4-expose-nfs_parse_server_name-function.patch b/queue-5.4/nfsv4-expose-nfs_parse_server_name-function.patch
new file mode 100644 (file)
index 0000000..ca1f860
--- /dev/null
@@ -0,0 +1,51 @@
+From a83d61ef09a9317881d2ec4598441a9d10275552 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 9 Dec 2021 14:53:32 -0500
+Subject: NFSv4 expose nfs_parse_server_name function
+
+From: Olga Kornievskaia <kolga@netapp.com>
+
+[ Upstream commit f5b27cc6761e27ee6387a24df1a99ca77b360fea ]
+
+Make nfs_parse_server_name available outside of nfs4namespace.c.
+
+Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
+Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/nfs/nfs4_fs.h       | 3 ++-
+ fs/nfs/nfs4namespace.c | 4 ++--
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h
+index 5708b5a636f19..ebd77a301057e 100644
+--- a/fs/nfs/nfs4_fs.h
++++ b/fs/nfs/nfs4_fs.h
+@@ -279,7 +279,8 @@ struct vfsmount *nfs4_submount(struct nfs_server *, struct dentry *,
+                              struct nfs_fh *, struct nfs_fattr *);
+ int nfs4_replace_transport(struct nfs_server *server,
+                               const struct nfs4_fs_locations *locations);
+-
++size_t nfs_parse_server_name(char *string, size_t len, struct sockaddr *sa,
++                           size_t salen, struct net *net);
+ /* nfs4proc.c */
+ extern int nfs4_handle_exception(struct nfs_server *, int, struct nfs4_exception *);
+ extern int nfs4_async_handle_error(struct rpc_task *task,
+diff --git a/fs/nfs/nfs4namespace.c b/fs/nfs/nfs4namespace.c
+index 2e460c33ae487..768258848a684 100644
+--- a/fs/nfs/nfs4namespace.c
++++ b/fs/nfs/nfs4namespace.c
+@@ -121,8 +121,8 @@ static int nfs4_validate_fspath(struct dentry *dentry,
+       return 0;
+ }
+-static size_t nfs_parse_server_name(char *string, size_t len,
+-              struct sockaddr *sa, size_t salen, struct net *net)
++size_t nfs_parse_server_name(char *string, size_t len, struct sockaddr *sa,
++                           size_t salen, struct net *net)
+ {
+       ssize_t ret;
+-- 
+2.34.1
+
diff --git a/queue-5.4/nfsv4-only-print-the-label-when-its-queried.patch b/queue-5.4/nfsv4-only-print-the-label-when-its-queried.patch
new file mode 100644 (file)
index 0000000..7b76982
--- /dev/null
@@ -0,0 +1,42 @@
+From 212d8bfd609f61ef49cd92c1ec0a0e9e2b097440 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 29 Nov 2021 15:33:56 -0500
+Subject: NFSv4 only print the label when its queried
+
+From: Olga Kornievskaia <kolga@netapp.com>
+
+[ Upstream commit 2c52c8376db7160a1dd8a681c61c9258405ef143 ]
+
+When the bitmask of the attributes doesn't include the security label,
+don't bother printing it. Since the label might not be null terminated,
+adjust the printing format accordingly.
+
+Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
+Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/nfs/nfs4xdr.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
+index 9a022a4fb9643..0fc08d22c9218 100644
+--- a/fs/nfs/nfs4xdr.c
++++ b/fs/nfs/nfs4xdr.c
+@@ -4187,10 +4187,11 @@ static int decode_attr_security_label(struct xdr_stream *xdr, uint32_t *bitmap,
+               } else
+                       printk(KERN_WARNING "%s: label too long (%u)!\n",
+                                       __func__, len);
++              if (label && label->label)
++                      dprintk("%s: label=%.*s, len=%d, PI=%d, LFS=%d\n",
++                              __func__, label->len, (char *)label->label,
++                              label->len, label->pi, label->lfs);
+       }
+-      if (label && label->label)
+-              dprintk("%s: label=%s, len=%d, PI=%d, LFS=%d\n", __func__,
+-                      (char *)label->label, label->len, label->pi, label->lfs);
+       return status;
+ }
+-- 
+2.34.1
+
diff --git a/queue-5.4/nfsv4-remove-zero-number-of-fs_locations-entries-err.patch b/queue-5.4/nfsv4-remove-zero-number-of-fs_locations-entries-err.patch
new file mode 100644 (file)
index 0000000..05411c8
--- /dev/null
@@ -0,0 +1,50 @@
+From 78c1175e11f2ecae1ec7f82238be0dfeb7f3cbd8 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 9 Dec 2021 14:53:29 -0500
+Subject: NFSv4 remove zero number of fs_locations entries error check
+
+From: Olga Kornievskaia <kolga@netapp.com>
+
+[ Upstream commit 90e12a3191040bd3854d3e236c35921e4e92a044 ]
+
+Remove the check for the zero length fs_locations reply in the
+xdr decoding, and instead check for that in the migration code.
+
+Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
+Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/nfs/nfs4state.c | 3 +++
+ fs/nfs/nfs4xdr.c   | 2 --
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
+index ea680f619438b..aa2caba38a014 100644
+--- a/fs/nfs/nfs4state.c
++++ b/fs/nfs/nfs4state.c
+@@ -2070,6 +2070,9 @@ static int nfs4_try_migration(struct nfs_server *server, const struct cred *cred
+       }
+       result = -NFS4ERR_NXIO;
++      if (!locations->nlocations)
++              goto out;
++
+       if (!(locations->fattr.valid & NFS_ATTR_FATTR_V4_LOCATIONS)) {
+               dprintk("<-- %s: No fs_locations data, migration skipped\n",
+                       __func__);
+diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
+index 0fc08d22c9218..2b7741fe42ead 100644
+--- a/fs/nfs/nfs4xdr.c
++++ b/fs/nfs/nfs4xdr.c
+@@ -3683,8 +3683,6 @@ static int decode_attr_fs_locations(struct xdr_stream *xdr, uint32_t *bitmap, st
+       if (unlikely(!p))
+               goto out_eio;
+       n = be32_to_cpup(p);
+-      if (n <= 0)
+-              goto out_eio;
+       for (res->nlocations = 0; res->nlocations < n; res->nlocations++) {
+               u32 m;
+               struct nfs4_fs_location *loc;
+-- 
+2.34.1
+
diff --git a/queue-5.4/nfsv4.1-fix-uninitialised-variable-in-devicenotify.patch b/queue-5.4/nfsv4.1-fix-uninitialised-variable-in-devicenotify.patch
new file mode 100644 (file)
index 0000000..667ff9a
--- /dev/null
@@ -0,0 +1,106 @@
+From a510d8747cfa54a6af8f4d555ba7f98468cf284a Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 3 Jan 2022 14:50:16 -0500
+Subject: NFSv4.1: Fix uninitialised variable in devicenotify
+
+From: Trond Myklebust <trond.myklebust@hammerspace.com>
+
+[ Upstream commit b05bf5c63b326ce1da84ef42498d8e0e292e694c ]
+
+When decode_devicenotify_args() exits with no entries, we need to
+ensure that the struct cb_devicenotifyargs is initialised to
+{ 0, NULL } in order to avoid problems in
+nfs4_callback_devicenotify().
+
+Reported-by: <rtm@csail.mit.edu>
+Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
+Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/nfs/callback.h      |  2 +-
+ fs/nfs/callback_proc.c |  2 +-
+ fs/nfs/callback_xdr.c  | 18 +++++++++---------
+ 3 files changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/fs/nfs/callback.h b/fs/nfs/callback.h
+index 8f34daf85f703..5d5227ce4d91e 100644
+--- a/fs/nfs/callback.h
++++ b/fs/nfs/callback.h
+@@ -168,7 +168,7 @@ struct cb_devicenotifyitem {
+ };
+ struct cb_devicenotifyargs {
+-      int                              ndevs;
++      uint32_t                         ndevs;
+       struct cb_devicenotifyitem       *devs;
+ };
+diff --git a/fs/nfs/callback_proc.c b/fs/nfs/callback_proc.c
+index fc775b0b5194f..b8a7b223b5b18 100644
+--- a/fs/nfs/callback_proc.c
++++ b/fs/nfs/callback_proc.c
+@@ -364,7 +364,7 @@ __be32 nfs4_callback_devicenotify(void *argp, void *resp,
+                                 struct cb_process_state *cps)
+ {
+       struct cb_devicenotifyargs *args = argp;
+-      int i;
++      uint32_t i;
+       __be32 res = 0;
+       struct nfs_client *clp = cps->clp;
+       struct nfs_server *server = NULL;
+diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c
+index 73a5a5ea29766..90b5511c4c440 100644
+--- a/fs/nfs/callback_xdr.c
++++ b/fs/nfs/callback_xdr.c
+@@ -258,11 +258,9 @@ __be32 decode_devicenotify_args(struct svc_rqst *rqstp,
+                               void *argp)
+ {
+       struct cb_devicenotifyargs *args = argp;
++      uint32_t tmp, n, i;
+       __be32 *p;
+       __be32 status = 0;
+-      u32 tmp;
+-      int n, i;
+-      args->ndevs = 0;
+       /* Num of device notifications */
+       p = xdr_inline_decode(xdr, sizeof(uint32_t));
+@@ -271,7 +269,7 @@ __be32 decode_devicenotify_args(struct svc_rqst *rqstp,
+               goto out;
+       }
+       n = ntohl(*p++);
+-      if (n <= 0)
++      if (n == 0)
+               goto out;
+       if (n > ULONG_MAX / sizeof(*args->devs)) {
+               status = htonl(NFS4ERR_BADXDR);
+@@ -330,19 +328,21 @@ __be32 decode_devicenotify_args(struct svc_rqst *rqstp,
+                       dev->cbd_immediate = 0;
+               }
+-              args->ndevs++;
+-
+               dprintk("%s: type %d layout 0x%x immediate %d\n",
+                       __func__, dev->cbd_notify_type, dev->cbd_layout_type,
+                       dev->cbd_immediate);
+       }
++      args->ndevs = n;
++      dprintk("%s: ndevs %d\n", __func__, args->ndevs);
++      return 0;
++err:
++      kfree(args->devs);
+ out:
++      args->devs = NULL;
++      args->ndevs = 0;
+       dprintk("%s: status %d ndevs %d\n",
+               __func__, ntohl(status), args->ndevs);
+       return status;
+-err:
+-      kfree(args->devs);
+-      goto out;
+ }
+ static __be32 decode_sessionid(struct xdr_stream *xdr,
+-- 
+2.34.1
+
diff --git a/queue-5.4/pm-hibernate-remove-register_nosave_region_late.patch b/queue-5.4/pm-hibernate-remove-register_nosave_region_late.patch
new file mode 100644 (file)
index 0000000..056a8f6
--- /dev/null
@@ -0,0 +1,96 @@
+From 0d782f9de5f3d9afff59a8a2ca54a572c59850ab Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 19 Jan 2022 11:47:51 +0100
+Subject: PM: hibernate: Remove register_nosave_region_late()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
+
+[ Upstream commit 33569ef3c754a82010f266b7b938a66a3ccf90a4 ]
+
+It is an unused wrapper forcing kmalloc allocation for registering
+nosave regions. Also, rename __register_nosave_region() to
+register_nosave_region() now that there is no need for disambiguation.
+
+Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
+Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ include/linux/suspend.h | 11 +----------
+ kernel/power/snapshot.c | 21 +++++++--------------
+ 2 files changed, 8 insertions(+), 24 deletions(-)
+
+diff --git a/include/linux/suspend.h b/include/linux/suspend.h
+index cd97d2c8840cc..44dd49cb2ea05 100644
+--- a/include/linux/suspend.h
++++ b/include/linux/suspend.h
+@@ -428,15 +428,7 @@ struct platform_hibernation_ops {
+ #ifdef CONFIG_HIBERNATION
+ /* kernel/power/snapshot.c */
+-extern void __register_nosave_region(unsigned long b, unsigned long e, int km);
+-static inline void __init register_nosave_region(unsigned long b, unsigned long e)
+-{
+-      __register_nosave_region(b, e, 0);
+-}
+-static inline void __init register_nosave_region_late(unsigned long b, unsigned long e)
+-{
+-      __register_nosave_region(b, e, 1);
+-}
++extern void register_nosave_region(unsigned long b, unsigned long e);
+ extern int swsusp_page_is_forbidden(struct page *);
+ extern void swsusp_set_page_free(struct page *);
+ extern void swsusp_unset_page_free(struct page *);
+@@ -453,7 +445,6 @@ extern struct pbe *restore_pblist;
+ int pfn_is_nosave(unsigned long pfn);
+ #else /* CONFIG_HIBERNATION */
+ static inline void register_nosave_region(unsigned long b, unsigned long e) {}
+-static inline void register_nosave_region_late(unsigned long b, unsigned long e) {}
+ static inline int swsusp_page_is_forbidden(struct page *p) { return 0; }
+ static inline void swsusp_set_page_free(struct page *p) {}
+ static inline void swsusp_unset_page_free(struct page *p) {}
+diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c
+index d65f2d5ab6942..46455aa7951ec 100644
+--- a/kernel/power/snapshot.c
++++ b/kernel/power/snapshot.c
+@@ -945,8 +945,7 @@ static void memory_bm_recycle(struct memory_bitmap *bm)
+  * Register a range of page frames the contents of which should not be saved
+  * during hibernation (to be used in the early initialization code).
+  */
+-void __init __register_nosave_region(unsigned long start_pfn,
+-                                   unsigned long end_pfn, int use_kmalloc)
++void __init register_nosave_region(unsigned long start_pfn, unsigned long end_pfn)
+ {
+       struct nosave_region *region;
+@@ -962,18 +961,12 @@ void __init __register_nosave_region(unsigned long start_pfn,
+                       goto Report;
+               }
+       }
+-      if (use_kmalloc) {
+-              /* During init, this shouldn't fail */
+-              region = kmalloc(sizeof(struct nosave_region), GFP_KERNEL);
+-              BUG_ON(!region);
+-      } else {
+-              /* This allocation cannot fail */
+-              region = memblock_alloc(sizeof(struct nosave_region),
+-                                      SMP_CACHE_BYTES);
+-              if (!region)
+-                      panic("%s: Failed to allocate %zu bytes\n", __func__,
+-                            sizeof(struct nosave_region));
+-      }
++      /* This allocation cannot fail */
++      region = memblock_alloc(sizeof(struct nosave_region),
++                              SMP_CACHE_BYTES);
++      if (!region)
++              panic("%s: Failed to allocate %zu bytes\n", __func__,
++                    sizeof(struct nosave_region));
+       region->start_pfn = start_pfn;
+       region->end_pfn = end_pfn;
+       list_add_tail(&region->list, &nosave_regions);
+-- 
+2.34.1
+
diff --git a/queue-5.4/scsi-myrs-fix-crash-in-error-case.patch b/queue-5.4/scsi-myrs-fix-crash-in-error-case.patch
new file mode 100644 (file)
index 0000000..582f3ec
--- /dev/null
@@ -0,0 +1,48 @@
+From 195669d7b7616f3e58a812787cc2808388aa4720 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 23 Jan 2022 14:57:17 -0800
+Subject: scsi: myrs: Fix crash in error case
+
+From: Tong Zhang <ztong0001@gmail.com>
+
+[ Upstream commit 4db09593af0b0b4d7d4805ebb3273df51d7cc30d ]
+
+In myrs_detect(), cs->disable_intr is NULL when privdata->hw_init() fails
+with non-zero. In this case, myrs_cleanup(cs) will call a NULL ptr and
+crash the kernel.
+
+[    1.105606] myrs 0000:00:03.0: Unknown Initialization Error 5A
+[    1.105872] myrs 0000:00:03.0: Failed to initialize Controller
+[    1.106082] BUG: kernel NULL pointer dereference, address: 0000000000000000
+[    1.110774] Call Trace:
+[    1.110950]  myrs_cleanup+0xe4/0x150 [myrs]
+[    1.111135]  myrs_probe.cold+0x91/0x56a [myrs]
+[    1.111302]  ? DAC960_GEM_intr_handler+0x1f0/0x1f0 [myrs]
+[    1.111500]  local_pci_probe+0x48/0x90
+
+Link: https://lore.kernel.org/r/20220123225717.1069538-1-ztong0001@gmail.com
+Reviewed-by: Hannes Reinecke <hare@suse.de>
+Signed-off-by: Tong Zhang <ztong0001@gmail.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/scsi/myrs.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/scsi/myrs.c b/drivers/scsi/myrs.c
+index cfc3f8b4174ab..2d3d14aa46b4b 100644
+--- a/drivers/scsi/myrs.c
++++ b/drivers/scsi/myrs.c
+@@ -2272,7 +2272,8 @@ static void myrs_cleanup(struct myrs_hba *cs)
+       myrs_unmap(cs);
+       if (cs->mmio_base) {
+-              cs->disable_intr(cs);
++              if (cs->disable_intr)
++                      cs->disable_intr(cs);
+               iounmap(cs->mmio_base);
+               cs->mmio_base = NULL;
+       }
+-- 
+2.34.1
+
diff --git a/queue-5.4/scsi-qedf-fix-refcount-issue-when-logo-is-received-d.patch b/queue-5.4/scsi-qedf-fix-refcount-issue-when-logo-is-received-d.patch
new file mode 100644 (file)
index 0000000..fedb198
--- /dev/null
@@ -0,0 +1,72 @@
+From 893c7571ff6e39f57a35ca6eaa9ff7e2fb5a681d Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 17 Jan 2022 05:53:10 -0800
+Subject: scsi: qedf: Fix refcount issue when LOGO is received during TMF
+
+From: Saurav Kashyap <skashyap@marvell.com>
+
+[ Upstream commit 5239ab63f17cee643bd4bf6addfedebaa7d4f41e ]
+
+Hung task call trace was seen during LOGO processing.
+
+[  974.309060] [0000:00:00.0]:[qedf_eh_device_reset:868]: 1:0:2:0: LUN RESET Issued...
+[  974.309065] [0000:00:00.0]:[qedf_initiate_tmf:2422]: tm_flags 0x10 sc_cmd 00000000c16b930f op = 0x2a target_id = 0x2 lun=0
+[  974.309178] [0000:00:00.0]:[qedf_initiate_tmf:2431]: portid=016900 tm_flags =LUN RESET
+[  974.309222] [0000:00:00.0]:[qedf_initiate_tmf:2438]: orig io_req = 00000000ec78df8f xid = 0x180 ref_cnt = 1.
+[  974.309625] host1: rport 016900: Received LOGO request while in state Ready
+[  974.309627] host1: rport 016900: Delete port
+[  974.309642] host1: rport 016900: work event 3
+[  974.309644] host1: rport 016900: lld callback ev 3
+[  974.313243] [0000:61:00.2]:[qedf_execute_tmf:2383]:1: fcport is uploading, not executing flush.
+[  974.313295] [0000:61:00.2]:[qedf_execute_tmf:2400]:1: task mgmt command success...
+[  984.031088] INFO: task jbd2/dm-15-8:7645 blocked for more than 120 seconds.
+[  984.031136]       Not tainted 4.18.0-305.el8.x86_64 #1
+
+[  984.031166] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
+[  984.031209] jbd2/dm-15-8    D    0  7645      2 0x80004080
+[  984.031212] Call Trace:
+[  984.031222]  __schedule+0x2c4/0x700
+[  984.031230]  ? unfreeze_partials.isra.83+0x16e/0x1a0
+[  984.031233]  ? bit_wait_timeout+0x90/0x90
+[  984.031235]  schedule+0x38/0xa0
+[  984.031238]  io_schedule+0x12/0x40
+[  984.031240]  bit_wait_io+0xd/0x50
+[  984.031243]  __wait_on_bit+0x6c/0x80
+[  984.031248]  ? free_buffer_head+0x21/0x50
+[  984.031251]  out_of_line_wait_on_bit+0x91/0xb0
+[  984.031257]  ? init_wait_var_entry+0x50/0x50
+[  984.031268]  jbd2_journal_commit_transaction+0x112e/0x19f0 [jbd2]
+[  984.031280]  kjournald2+0xbd/0x270 [jbd2]
+[  984.031284]  ? finish_wait+0x80/0x80
+[  984.031291]  ? commit_timeout+0x10/0x10 [jbd2]
+[  984.031294]  kthread+0x116/0x130
+[  984.031300]  ? kthread_flush_work_fn+0x10/0x10
+[  984.031305]  ret_from_fork+0x1f/0x40
+
+There was a ref count issue when LOGO is received during TMF. This leads to
+one of the I/Os hanging with the driver. Fix the ref count.
+
+Link: https://lore.kernel.org/r/20220117135311.6256-3-njavali@marvell.com
+Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
+Signed-off-by: Nilesh Javali <njavali@marvell.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/scsi/qedf/qedf_io.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/scsi/qedf/qedf_io.c b/drivers/scsi/qedf/qedf_io.c
+index 4e8a284e606c0..d02d1ef0d0116 100644
+--- a/drivers/scsi/qedf/qedf_io.c
++++ b/drivers/scsi/qedf/qedf_io.c
+@@ -2253,6 +2253,7 @@ int qedf_initiate_cleanup(struct qedf_ioreq *io_req,
+           io_req->tm_flags == FCP_TMF_TGT_RESET) {
+               clear_bit(QEDF_CMD_OUTSTANDING, &io_req->flags);
+               io_req->sc_cmd = NULL;
++              kref_put(&io_req->refcount, qedf_release_cmd);
+               complete(&io_req->tm_done);
+       }
+-- 
+2.34.1
+
diff --git a/queue-5.4/scsi-target-iscsi-make-sure-the-np-under-each-tpg-is.patch b/queue-5.4/scsi-target-iscsi-make-sure-the-np-under-each-tpg-is.patch
new file mode 100644 (file)
index 0000000..3bb4bca
--- /dev/null
@@ -0,0 +1,43 @@
+From ea0e471f5cce8371730bb5795afa69b9a8848eff Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 11 Jan 2022 13:47:42 +0800
+Subject: scsi: target: iscsi: Make sure the np under each tpg is unique
+
+From: ZouMingzhe <mingzhe.zou@easystack.cn>
+
+[ Upstream commit a861790afaa8b6369eee8a88c5d5d73f5799c0c6 ]
+
+iscsit_tpg_check_network_portal() has nested for_each loops and is supposed
+to return true when a match is found. However, the tpg loop will still
+continue after existing the tpg_np loop. If this tpg_np is not the last the
+match value will be changed.
+
+Break the outer loop after finding a match and make sure the np under each
+tpg is unique.
+
+Link: https://lore.kernel.org/r/20220111054742.19582-1-mingzhe.zou@easystack.cn
+Signed-off-by: ZouMingzhe <mingzhe.zou@easystack.cn>
+Reviewed-by: Mike Christie <michael.christie@oracle.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/target/iscsi/iscsi_target_tpg.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/drivers/target/iscsi/iscsi_target_tpg.c b/drivers/target/iscsi/iscsi_target_tpg.c
+index 8075f60fd02c3..2d5cf1714ae05 100644
+--- a/drivers/target/iscsi/iscsi_target_tpg.c
++++ b/drivers/target/iscsi/iscsi_target_tpg.c
+@@ -443,6 +443,9 @@ static bool iscsit_tpg_check_network_portal(
+                               break;
+               }
+               spin_unlock(&tpg->tpg_np_lock);
++
++              if (match)
++                      break;
+       }
+       spin_unlock(&tiqn->tiqn_tpg_lock);
+-- 
+2.34.1
+
index f2232f7de47bd92c7f05cd158c7a4593cad52860..302257277bdc5bb641feddc95c1c857f2a79dbbf 100644 (file)
@@ -9,3 +9,17 @@ nfs-fix-initialisation-of-nfs_client-cl_flags-field.patch
 nfsd-clamp-write-offsets.patch
 nfsd-fix-offset-type-in-i-o-trace-points.patch
 nvme-fix-parsing-of-ana-log-page.patch
+nfsv4-only-print-the-label-when-its-queried.patch
+nfs-nfs4clinet-check-the-return-value-of-kstrdup.patch
+nfsv4.1-fix-uninitialised-variable-in-devicenotify.patch
+nfsv4-remove-zero-number-of-fs_locations-entries-err.patch
+nfsv4-expose-nfs_parse_server_name-function.patch
+drm-panel-orientation-quirks-add-quirk-for-the-1netb.patch
+net-sched-clarify-error-message-when-qdisc-kind-is-u.patch
+scsi-target-iscsi-make-sure-the-np-under-each-tpg-is.patch
+scsi-qedf-fix-refcount-issue-when-logo-is-received-d.patch
+scsi-myrs-fix-crash-in-error-case.patch
+pm-hibernate-remove-register_nosave_region_late.patch
+usb-dwc2-gadget-don-t-try-to-disable-ep0-in-dwc2_hso.patch
+net-stmmac-dwmac-sun8i-use-return-val-of-readl_poll_.patch
+kvm-nvmx-evmcs-filter-out-vm_exit_save_vmx_preemptio.patch
diff --git a/queue-5.4/usb-dwc2-gadget-don-t-try-to-disable-ep0-in-dwc2_hso.patch b/queue-5.4/usb-dwc2-gadget-don-t-try-to-disable-ep0-in-dwc2_hso.patch
new file mode 100644 (file)
index 0000000..9091167
--- /dev/null
@@ -0,0 +1,50 @@
+From e289827fd5103bf590f44ba516c737f9442d4f58 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 7 Dec 2021 14:01:01 +0100
+Subject: usb: dwc2: gadget: don't try to disable ep0 in dwc2_hsotg_suspend
+
+From: Amelie Delaunay <amelie.delaunay@foss.st.com>
+
+[ Upstream commit ac55d163855924aa5af9f1560977da8f346963c8 ]
+
+Calling dwc2_hsotg_ep_disable on ep0 (in/out) will lead to the following
+logs before returning -EINVAL:
+dwc2 49000000.usb-otg: dwc2_hsotg_ep_disable: called for ep0
+dwc2 49000000.usb-otg: dwc2_hsotg_ep_disable: called for ep0
+
+To avoid these two logs while suspending, start disabling the endpoint
+from the index 1, as done in dwc2_hsotg_udc_stop:
+
+       /* all endpoints should be shutdown */
+       for (ep = 1; ep < hsotg->num_of_eps; ep++) {
+               if (hsotg->eps_in[ep])
+                       dwc2_hsotg_ep_disable_lock(&hsotg->eps_in[ep]->ep);
+               if (hsotg->eps_out[ep])
+                       dwc2_hsotg_ep_disable_lock(&hsotg->eps_out[ep]->ep);
+       }
+
+Acked-by: Minas Harutyunyan <Minas.Harutyunyan@synopsys.com>
+Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
+Link: https://lore.kernel.org/r/20211207130101.270314-1-amelie.delaunay@foss.st.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/usb/dwc2/gadget.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
+index 249e8e6aa9282..379bbf27c7ce8 100644
+--- a/drivers/usb/dwc2/gadget.c
++++ b/drivers/usb/dwc2/gadget.c
+@@ -4979,7 +4979,7 @@ int dwc2_hsotg_suspend(struct dwc2_hsotg *hsotg)
+               hsotg->gadget.speed = USB_SPEED_UNKNOWN;
+               spin_unlock_irqrestore(&hsotg->lock, flags);
+-              for (ep = 0; ep < hsotg->num_of_eps; ep++) {
++              for (ep = 1; ep < hsotg->num_of_eps; ep++) {
+                       if (hsotg->eps_in[ep])
+                               dwc2_hsotg_ep_disable_lock(&hsotg->eps_in[ep]->ep);
+                       if (hsotg->eps_out[ep])
+-- 
+2.34.1
+