]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 Jun 2022 17:04:08 +0000 (19:04 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 Jun 2022 17:04:08 +0000 (19:04 +0200)
added patches:
bpf-enlarge-offset-check-value-to-int_max-in-bpf_skb_-load-store-_bytes.patch
docs-submitting-patches-fix-crossref-to-the-canonical-patch-format.patch
nfsd-fix-possible-sleep-during-nfsd4_release_lockowner.patch

queue-4.14/bpf-enlarge-offset-check-value-to-int_max-in-bpf_skb_-load-store-_bytes.patch [new file with mode: 0644]
queue-4.14/docs-submitting-patches-fix-crossref-to-the-canonical-patch-format.patch [new file with mode: 0644]
queue-4.14/nfsd-fix-possible-sleep-during-nfsd4_release_lockowner.patch [new file with mode: 0644]
queue-4.14/series

diff --git a/queue-4.14/bpf-enlarge-offset-check-value-to-int_max-in-bpf_skb_-load-store-_bytes.patch b/queue-4.14/bpf-enlarge-offset-check-value-to-int_max-in-bpf_skb_-load-store-_bytes.patch
new file mode 100644 (file)
index 0000000..1a4e5f8
--- /dev/null
@@ -0,0 +1,44 @@
+From 45969b4152c1752089351cd6836a42a566d49bcf Mon Sep 17 00:00:00 2001
+From: Liu Jian <liujian56@huawei.com>
+Date: Sat, 16 Apr 2022 18:57:59 +0800
+Subject: bpf: Enlarge offset check value to INT_MAX in bpf_skb_{load,store}_bytes
+
+From: Liu Jian <liujian56@huawei.com>
+
+commit 45969b4152c1752089351cd6836a42a566d49bcf upstream.
+
+The data length of skb frags + frag_list may be greater than 0xffff, and
+skb_header_pointer can not handle negative offset. So, here INT_MAX is used
+to check the validity of offset. Add the same change to the related function
+skb_store_bytes.
+
+Fixes: 05c74e5e53f6 ("bpf: add bpf_skb_load_bytes helper")
+Signed-off-by: Liu Jian <liujian56@huawei.com>
+Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
+Acked-by: Song Liu <songliubraving@fb.com>
+Link: https://lore.kernel.org/bpf/20220416105801.88708-2-liujian56@huawei.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ net/core/filter.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/net/core/filter.c
++++ b/net/core/filter.c
+@@ -1443,7 +1443,7 @@ BPF_CALL_5(bpf_skb_store_bytes, struct s
+       if (unlikely(flags & ~(BPF_F_RECOMPUTE_CSUM | BPF_F_INVALIDATE_HASH)))
+               return -EINVAL;
+-      if (unlikely(offset > 0xffff))
++      if (unlikely(offset > INT_MAX))
+               return -EFAULT;
+       if (unlikely(bpf_try_make_writable(skb, offset + len)))
+               return -EFAULT;
+@@ -1478,7 +1478,7 @@ BPF_CALL_4(bpf_skb_load_bytes, const str
+ {
+       void *ptr;
+-      if (unlikely(offset > 0xffff))
++      if (unlikely(offset > INT_MAX))
+               goto err_clear;
+       ptr = skb_header_pointer(skb, offset, len, to);
diff --git a/queue-4.14/docs-submitting-patches-fix-crossref-to-the-canonical-patch-format.patch b/queue-4.14/docs-submitting-patches-fix-crossref-to-the-canonical-patch-format.patch
new file mode 100644 (file)
index 0000000..5a01420
--- /dev/null
@@ -0,0 +1,43 @@
+From 6d5aa418b3bd42cdccc36e94ee199af423ef7c84 Mon Sep 17 00:00:00 2001
+From: Akira Yokosawa <akiyks@gmail.com>
+Date: Wed, 27 Apr 2022 18:28:39 +0900
+Subject: docs: submitting-patches: Fix crossref to 'The canonical patch format'
+
+From: Akira Yokosawa <akiyks@gmail.com>
+
+commit 6d5aa418b3bd42cdccc36e94ee199af423ef7c84 upstream.
+
+The reference to `explicit_in_reply_to` is pointless as when the
+reference was added in the form of "#15" [1], Section 15) was "The
+canonical patch format".
+The reference of "#15" had not been properly updated in a couple of
+reorganizations during the plain-text SubmittingPatches era.
+
+Fix it by using `the_canonical_patch_format`.
+
+[1]: 2ae19acaa50a ("Documentation: Add "how to write a good patch summary" to SubmittingPatches")
+
+Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
+Fixes: 5903019b2a5e ("Documentation/SubmittingPatches: convert it to ReST markup")
+Fixes: 9b2c76777acc ("Documentation/SubmittingPatches: enrich the Sphinx output")
+Cc: Jonathan Corbet <corbet@lwn.net>
+Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
+Cc: stable@vger.kernel.org # v4.9+
+Link: https://lore.kernel.org/r/64e105a5-50be-23f2-6cae-903a2ea98e18@gmail.com
+Signed-off-by: Jonathan Corbet <corbet@lwn.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ Documentation/process/submitting-patches.rst |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/Documentation/process/submitting-patches.rst
++++ b/Documentation/process/submitting-patches.rst
+@@ -133,7 +133,7 @@ as you intend it to.
+ The maintainer will thank you if you write your patch description in a
+ form which can be easily pulled into Linux's source code management
+-system, ``git``, as a "commit log".  See :ref:`explicit_in_reply_to`.
++system, ``git``, as a "commit log".  See :ref:`the_canonical_patch_format`.
+ Solve only one problem per patch.  If your description starts to get
+ long, that's a sign that you probably need to split up your patch.
diff --git a/queue-4.14/nfsd-fix-possible-sleep-during-nfsd4_release_lockowner.patch b/queue-4.14/nfsd-fix-possible-sleep-during-nfsd4_release_lockowner.patch
new file mode 100644 (file)
index 0000000..af34c4d
--- /dev/null
@@ -0,0 +1,51 @@
+From ce3c4ad7f4ce5db7b4f08a1e237d8dd94b39180b Mon Sep 17 00:00:00 2001
+From: Chuck Lever <chuck.lever@oracle.com>
+Date: Sat, 21 May 2022 19:06:13 -0400
+Subject: NFSD: Fix possible sleep during nfsd4_release_lockowner()
+
+From: Chuck Lever <chuck.lever@oracle.com>
+
+commit ce3c4ad7f4ce5db7b4f08a1e237d8dd94b39180b upstream.
+
+nfsd4_release_lockowner() holds clp->cl_lock when it calls
+check_for_locks(). However, check_for_locks() calls nfsd_file_get()
+/ nfsd_file_put() to access the backing inode's flc_posix list, and
+nfsd_file_put() can sleep if the inode was recently removed.
+
+Let's instead rely on the stateowner's reference count to gate
+whether the release is permitted. This should be a reliable
+indication of locks-in-use since file lock operations and
+->lm_get_owner take appropriate references, which are released
+appropriately when file locks are removed.
+
+Reported-by: Dai Ngo <dai.ngo@oracle.com>
+Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+Cc: stable@vger.kernel.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ fs/nfsd/nfs4state.c |   12 ++++--------
+ 1 file changed, 4 insertions(+), 8 deletions(-)
+
+--- a/fs/nfsd/nfs4state.c
++++ b/fs/nfsd/nfs4state.c
+@@ -6351,16 +6351,12 @@ nfsd4_release_lockowner(struct svc_rqst
+               if (sop->so_is_open_owner || !same_owner_str(sop, owner))
+                       continue;
+-              /* see if there are still any locks associated with it */
+-              lo = lockowner(sop);
+-              list_for_each_entry(stp, &sop->so_stateids, st_perstateowner) {
+-                      if (check_for_locks(stp->st_stid.sc_file, lo)) {
+-                              status = nfserr_locks_held;
+-                              spin_unlock(&clp->cl_lock);
+-                              return status;
+-                      }
++              if (atomic_read(&sop->so_count) != 1) {
++                      spin_unlock(&clp->cl_lock);
++                      return nfserr_locks_held;
+               }
++              lo = lockowner(sop);
+               nfs4_get_stateowner(sop);
+               break;
+       }
index f6958af932321adbb5acf71381b217633b4fdf24..e1c0e3197cc770240b6b91b9405daf61db5550d9 100644 (file)
@@ -18,3 +18,6 @@ dm-crypt-make-printing-of-the-key-constant-time.patch
 dm-stats-add-cond_resched-when-looping-over-entries.patch
 dm-verity-set-dm_target_immutable-feature-flag.patch
 tpm-ibmvtpm-correct-the-return-value-in-tpm_ibmvtpm_probe.patch
+docs-submitting-patches-fix-crossref-to-the-canonical-patch-format.patch
+nfsd-fix-possible-sleep-during-nfsd4_release_lockowner.patch
+bpf-enlarge-offset-check-value-to-int_max-in-bpf_skb_-load-store-_bytes.patch