Linux kernel -stable discussions
 help / color / mirror / Atom feed
* FAILED: patch "[PATCH] s390/mm: Fix VM_FAULT_HWPOISON handling in do_exception()" failed to apply to 6.6-stable tree
@ 2024-07-25 12:28 gregkh
  2024-07-25 15:02 ` [PATCH] s390/mm: Fix VM_FAULT_HWPOISON handling in do_fault_error() Yunseong Kim
  0 siblings, 1 reply; 2+ messages in thread
From: gregkh @ 2024-07-25 12:28 UTC (permalink / raw)
  To: gerald.schaefer, agordeev, gor, yskelg; +Cc: stable


The patch below does not apply to the 6.6-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable@vger.kernel.org>.

To reproduce the conflict and resubmit, you may use the following commands:

git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.6.y
git checkout FETCH_HEAD
git cherry-pick -x df39038cd89525d465c2c8827eb64116873f141a
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable@vger.kernel.org>' --in-reply-to '2024072535-synergy-struggle-8ecc@gregkh' --subject-prefix 'PATCH 6.6.y' HEAD^..

Possible dependencies:

df39038cd895 ("s390/mm: Fix VM_FAULT_HWPOISON handling in do_exception()")
b20c8216c1e0 ("s390/mm,fault: move VM_FAULT_ERROR handling to do_exception()")
7c194d84a9ce ("s390/mm,fault: remove VM_FAULT_BADMAP and VM_FAULT_BADACCESS")
b61a0922b6dc ("s390/mm,fault: remove VM_FAULT_SIGNAL")
0f86ac4ba713 ("s390/mm,fault: remove VM_FAULT_BADCONTEXT")
0f1a14e0348e ("s390/mm,fault: simplify kfence fault handling")
64ea33fb09f8 ("s390/mm,fault: call do_fault_error() only from do_exception()")
5db06565cad6 ("s390/mm,fault: get rid of do_low_address()")
cca12b427d43 ("s390/mm,fault: remove VM_FAULT_PFAULT")
5be05c35e72f ("s390/mm,fault: improve readability by using teid union")
4416d2ed8166 ("s390/mm,fault: use static key for store indication")
9641613f48bb ("s390/mm,fault: use get_fault_address() everywhere")
5c845de331d9 ("s390/mm,fault: remove noinline attribute from all functions")
8dbc33dc8163 ("s390/mm,fault: have balanced braces, remove unnecessary blanks")
7c915a84e5e2 ("s390/mm,fault: reverse x-mas tree coding style")
3aad8c044297 ("s390/mm,fault: remove and improve comments, adjust whitespace")

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

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: [PATCH] s390/mm: Fix VM_FAULT_HWPOISON handling in do_exception()

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>

diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
index 6b19a33c49c2..8e149ef5e89b 100644
--- a/arch/s390/mm/fault.c
+++ b/arch/s390/mm/fault.c
@@ -433,12 +433,13 @@ static void do_exception(struct pt_regs *regs, int access)
 			handle_fault_error_nolock(regs, 0);
 		else
 			do_sigsegv(regs, SEGV_MAPERR);
-	} else if (fault & VM_FAULT_SIGBUS) {
+	} else if (fault & (VM_FAULT_SIGBUS | VM_FAULT_HWPOISON)) {
 		if (!user_mode(regs))
 			handle_fault_error_nolock(regs, 0);
 		else
 			do_sigbus(regs);
 	} else {
+		pr_emerg("Unexpected fault flags: %08x\n", fault);
 		BUG();
 	}
 }


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-07-25 15:02 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-25 12:28 FAILED: patch "[PATCH] s390/mm: Fix VM_FAULT_HWPOISON handling in do_exception()" failed to apply to 6.6-stable tree gregkh
2024-07-25 15:02 ` [PATCH] s390/mm: Fix VM_FAULT_HWPOISON handling in do_fault_error() Yunseong Kim

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox