]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 4 Jul 2023 07:36:03 +0000 (08:36 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 4 Jul 2023 07:36:03 +0000 (08:36 +0100)
added patches:
gup-avoid-stack-expansion-warning-for-known-good-case.patch

queue-6.4/gup-avoid-stack-expansion-warning-for-known-good-case.patch [new file with mode: 0644]
queue-6.4/series

diff --git a/queue-6.4/gup-avoid-stack-expansion-warning-for-known-good-case.patch b/queue-6.4/gup-avoid-stack-expansion-warning-for-known-good-case.patch
new file mode 100644 (file)
index 0000000..4dcb38a
--- /dev/null
@@ -0,0 +1,45 @@
+From eee9c708cc89b4600c6e6cdda5bc2b8b4dad96cb Mon Sep 17 00:00:00 2001
+From: Linus Torvalds <torvalds@linux-foundation.org>
+Date: Thu, 29 Jun 2023 12:36:47 -0700
+Subject: gup: avoid stack expansion warning for known-good case
+
+From: Linus Torvalds <torvalds@linux-foundation.org>
+
+commit eee9c708cc89b4600c6e6cdda5bc2b8b4dad96cb upstream.
+
+In commit a425ac5365f6 ("gup: add warning if some caller would seem to
+want stack expansion") I added a temporary warning to catch any strange
+GUP users that would be impacted by the fact that GUP no longer extends
+the stack.
+
+But it turns out that the warning is most easily triggered through
+__access_remote_vm(), that already knows to expand the stack - it just
+does it *after* calling GUP.  So the warning is easy to trigger by just
+running gdb (or similar) and accessing things remotely under the stack.
+
+This just adds a temporary extra "expand stack early" to avoid the
+warning for the already converted case - not because the warning is bad,
+but because getting the warning for this known good case would then hide
+any subsequent warnings for any actually interesting cases.
+
+Let's try to remember to revert this change when we remove the warnings.
+
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ mm/memory.c |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/mm/memory.c
++++ b/mm/memory.c
+@@ -5721,6 +5721,10 @@ int __access_remote_vm(struct mm_struct
+                       return 0;
+       }
++      /* Avoid triggering the temporary warning in __get_user_pages */
++      if (!vma_lookup(mm, addr) && !expand_stack(mm, addr))
++              return 0;
++
+       /* ignore errors, just check how much was successfully transferred */
+       while (len) {
+               int bytes, ret, offset;
index 36a2e61daaaa07da26ab5ec7858c5e43bf6ab661..042c966140b9222fbb7f76b9b2ca09d128e621c0 100644 (file)
@@ -12,3 +12,4 @@ docs-set-minimal-gtags-gnu-global-version-to-6.6.5.patch
 dm-ioctl-avoid-double-fetch-of-version.patch
 drm-amdgpu-validate-vm-ioctl-flags.patch
 arch-arm64-mm-fault-fix-undeclared-variable-error-in-do_page_fault.patch
+gup-avoid-stack-expansion-warning-for-known-good-case.patch