Home Home > GIT Browse > SLE11-SP4
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Hocko <mhocko@suse.com>2019-01-03 10:48:07 +0100
committerMichal Hocko <mhocko@suse.com>2019-01-03 10:48:07 +0100
commit1ff345db7f5e8e893562343c79bd971606c00f67 (patch)
treee829a59bb7b4932b9e93eaefba52106edda64ed9
parentdbc7e6c4a49adf9e6b1a3c7341344aa6b8d9eb38 (diff)
parent9a4666395157a1acb51e85b382a7247963ac9925 (diff)
Merge remote-tracking branch 'origin/users/msuchanek/SLE11-SP4/for-next' into users/mhocko/SLE11-SP4/for-next
-rw-r--r--blacklist.conf1
-rw-r--r--patches.arch/powerpc-traps-restore-recoverability-of-machine_chec.patch56
-rw-r--r--series.conf1
3 files changed, 58 insertions, 0 deletions
diff --git a/blacklist.conf b/blacklist.conf
index be3be6f4f5..3acae8e53e 100644
--- a/blacklist.conf
+++ b/blacklist.conf
@@ -322,3 +322,4 @@ acceb72e90624ec6c3f2fc62e72dab892cd075da # duplicate of 82cc4fc2e70ec5baeff8f776
90e406f96f630c07d631a021fd4af10aac913e77 # memory optimization
6b7e633fe9c24682df550e5311f47fb524701586 # optimization
1fe4293f4b8de75824935f8d8e9a99c7fc6873da # function graph tracer is disabled
+8a03e81cb14712f986c5d5fa42a30ff2cbe3237c # no powernv code on SLE11
diff --git a/patches.arch/powerpc-traps-restore-recoverability-of-machine_chec.patch b/patches.arch/powerpc-traps-restore-recoverability-of-machine_chec.patch
new file mode 100644
index 0000000000..a73cb87aaf
--- /dev/null
+++ b/patches.arch/powerpc-traps-restore-recoverability-of-machine_chec.patch
@@ -0,0 +1,56 @@
+From daf00ae71dad8aa05965713c62558aeebf2df48e Mon Sep 17 00:00:00 2001
+From: Christophe Leroy <christophe.leroy@c-s.fr>
+Date: Sat, 13 Oct 2018 09:16:22 +0000
+Subject: [PATCH] powerpc/traps: restore recoverability of machine_check
+ interrupts
+
+References: bsc#1094244
+Patch-mainline: v4.20-rc1
+Git-commit: daf00ae71dad8aa05965713c62558aeebf2df48e
+
+commit b96672dd840f ("powerpc: Machine check interrupt is a non-
+maskable interrupt") added a call to nmi_enter() at the beginning of
+machine check restart exception handler. Due to that, in_interrupt()
+always returns true regardless of the state before entering the
+exception, and die() panics even when the system was not already in
+interrupt.
+
+This patch calls nmi_exit() before calling die() in order to restore
+the interrupt state we had before calling nmi_enter()
+
+Fixes: b96672dd840f ("powerpc: Machine check interrupt is a non-maskable interrupt")
+Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
+Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
+Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
+Acked-by: Michal Suchanek <msuchanek@suse.de>
+---
+ arch/powerpc/kernel/traps.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
+index f1629a8acc4b..47904cd1ff46 100644
+--- a/arch/powerpc/kernel/traps.c
++++ b/arch/powerpc/kernel/traps.c
+@@ -763,12 +763,17 @@ void machine_check_exception(struct pt_regs *regs)
+ if (check_io_access(regs))
+ goto bail;
+
+- die("Machine check", regs, SIGBUS);
+-
+ /* Must die if the interrupt is not recoverable */
+ if (!(regs->msr & MSR_RI))
+ nmi_panic(regs, "Unrecoverable Machine check");
+
++ if (!nested)
++ nmi_exit();
++
++ die("Machine check", regs, SIGBUS);
++
++ return;
++
+ bail:
+ if (!nested)
+ nmi_exit();
+--
+2.19.2
+
diff --git a/series.conf b/series.conf
index 6c13546725..5f25b35fbd 100644
--- a/series.conf
+++ b/series.conf
@@ -1338,6 +1338,7 @@
patches.arch/powerpc-64s-Fix-compiler-store-ordering-to-SLB-shado.patch
patches.arch/powerpc-mm-hash-Add-missing-isync-prior-to-kernel-st.patch
patches.arch/powerpc-Machine-check-interrupt-is-a-non-maskable-in.patch
+ patches.arch/powerpc-traps-restore-recoverability-of-machine_chec.patch
# bsc#1076905
patches.arch/powerpc-Fix-register-clobbering-when-accumulating-st.patch