From: Greg Kroah-Hartman Date: Tue, 30 Jul 2024 14:24:46 +0000 (+0200) Subject: 6.6-stable patches X-Git-Tag: v6.1.103~16 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a9d4815e8232e7cfcc56b174914f6262a40b445b;p=thirdparty%2Fkernel%2Fstable-queue.git 6.6-stable patches added patches: s390-mm-fix-vm_fault_hwpoison-handling-in-do_exception.patch --- 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 index 00000000000..519dcd64dd7 --- /dev/null +++ b/queue-6.6/s390-mm-fix-vm_fault_hwpoison-handling-in-do_exception.patch @@ -0,0 +1,60 @@ +From df39038cd89525d465c2c8827eb64116873f141a Mon Sep 17 00:00:00 2001 +From: Gerald Schaefer +Date: Mon, 15 Jul 2024 20:04:16 +0200 +Subject: s390/mm: Fix VM_FAULT_HWPOISON handling in do_exception() + +From: Gerald Schaefer + +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 +Tested-by: Yunseong Kim +Acked-by: Alexander Gordeev +Signed-off-by: Gerald Schaefer +Message-ID: <20240715180416.3632453-1-gerald.schaefer@linux.ibm.com> +Signed-off-by: Vasily Gorbik +Signed-off-by: Yunseong Kim +Signed-off-by: Greg Kroah-Hartman +--- + 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; + } + } diff --git a/queue-6.6/series b/queue-6.6/series index d2afed47370..bdd63fdec35 100644 --- a/queue-6.6/series +++ b/queue-6.6/series @@ -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