]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.6-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 30 Jul 2024 14:24:46 +0000 (16:24 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 30 Jul 2024 14:24:46 +0000 (16:24 +0200)
added patches:
s390-mm-fix-vm_fault_hwpoison-handling-in-do_exception.patch

queue-6.6/s390-mm-fix-vm_fault_hwpoison-handling-in-do_exception.patch [new file with mode: 0644]
queue-6.6/series

diff --git a/queue-6.6/s390-mm-fix-vm_fault_hwpoison-handling-in-do_exception.patch b/queue-6.6/s390-mm-fix-vm_fault_hwpoison-handling-in-do_exception.patch
new file mode 100644 (file)
index 0000000..519dcd6
--- /dev/null
@@ -0,0 +1,60 @@
+From df39038cd89525d465c2c8827eb64116873f141a Mon Sep 17 00:00:00 2001
+From: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
+Date: Mon, 15 Jul 2024 20:04:16 +0200
+Subject: s390/mm: Fix VM_FAULT_HWPOISON handling in do_exception()
+
+From: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
+
+commit df39038cd89525d465c2c8827eb64116873f141a upstream.
+
+There is no support for HWPOISON, MEMORY_FAILURE, or ARCH_HAS_COPY_MC on
+s390. Therefore we do not expect to see VM_FAULT_HWPOISON in
+do_exception().
+
+However, since commit af19487f00f3 ("mm: make PTE_MARKER_SWAPIN_ERROR more
+general"), it is possible to see VM_FAULT_HWPOISON in combination with
+PTE_MARKER_POISONED, even on architectures that do not support HWPOISON
+otherwise. In this case, we will end up on the BUG() in do_exception().
+
+Fix this by treating VM_FAULT_HWPOISON the same as VM_FAULT_SIGBUS, similar
+to x86 when MEMORY_FAILURE is not configured. Also print unexpected fault
+flags, for easier debugging.
+
+Note that VM_FAULT_HWPOISON_LARGE is not expected, because s390 cannot
+support swap entries on other levels than PTE level.
+
+Cc: stable@vger.kernel.org # 6.6+
+Fixes: af19487f00f3 ("mm: make PTE_MARKER_SWAPIN_ERROR more general")
+Reported-by: Yunseong Kim <yskelg@gmail.com>
+Tested-by: Yunseong Kim <yskelg@gmail.com>
+Acked-by: Alexander Gordeev <agordeev@linux.ibm.com>
+Signed-off-by: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
+Message-ID: <20240715180416.3632453-1-gerald.schaefer@linux.ibm.com>
+Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
+Signed-off-by: Yunseong Kim <yskelg@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/s390/mm/fault.c |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/arch/s390/mm/fault.c
++++ b/arch/s390/mm/fault.c
+@@ -331,14 +331,16 @@ static noinline void do_fault_error(stru
+                               do_no_context(regs, fault);
+                       else
+                               do_sigsegv(regs, SEGV_MAPERR);
+-              } else if (fault & VM_FAULT_SIGBUS) {
++              } else if (fault & (VM_FAULT_SIGBUS | VM_FAULT_HWPOISON)) {
+                       /* Kernel mode? Handle exceptions or die */
+                       if (!user_mode(regs))
+                               do_no_context(regs, fault);
+                       else
+                               do_sigbus(regs);
+-              } else
++              } else {
++                      pr_emerg("Unexpected fault flags: %08x\n", fault);
+                       BUG();
++              }
+               break;
+       }
+ }
index d2afed473706f947341c403d0c22fd616af7cb45..bdd63fdec35502ade28ca1cba37c786d45fb69b7 100644 (file)
@@ -512,3 +512,4 @@ mm-mglru-fix-ineffective-protection-calculation.patch
 wifi-mac80211-track-capability-opmode-nss-separately.patch
 pci-introduce-cleanup-helpers-for-device-reference-counts-and-locks.patch
 pci-dpc-fix-use-after-free-on-concurrent-dpc-and-hot-removal.patch
+s390-mm-fix-vm_fault_hwpoison-handling-in-do_exception.patch