Home Home > GIT Browse > SLE12-SP4-AZURE
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Suchanek <msuchanek@suse.de>2019-06-10 19:03:59 +0200
committerMichal Suchanek <msuchanek@suse.de>2019-06-10 19:04:06 +0200
commit3eb7e4a3c679bc4c8e94fedb3fbaaaeea0c9172f (patch)
treec9ae4eada3dd7c188fa2946de31083b42e14cd58
parent4da32851165817ec39d636df9e085ea0586083ee (diff)
powerpc: Fix HMIs on big-endian with CONFIG_RELOCATABLE=y
(bsc#1065729).
-rw-r--r--patches.arch/powerpc-Fix-HMIs-on-big-endian-with-CONFIG_RELOCATAB.patch40
-rw-r--r--series.conf1
2 files changed, 41 insertions, 0 deletions
diff --git a/patches.arch/powerpc-Fix-HMIs-on-big-endian-with-CONFIG_RELOCATAB.patch b/patches.arch/powerpc-Fix-HMIs-on-big-endian-with-CONFIG_RELOCATAB.patch
new file mode 100644
index 0000000000..76ba8f40ea
--- /dev/null
+++ b/patches.arch/powerpc-Fix-HMIs-on-big-endian-with-CONFIG_RELOCATAB.patch
@@ -0,0 +1,40 @@
+From 505a314fb28ce122091691c51426fa85c084e115 Mon Sep 17 00:00:00 2001
+From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Mon, 8 Oct 2018 15:08:31 +1100
+Subject: [PATCH] powerpc: Fix HMIs on big-endian with CONFIG_RELOCATABLE=y
+
+References: bsc#1065729
+Patch-mainline: v5.0-rc1
+Git-commit: 505a314fb28ce122091691c51426fa85c084e115
+
+HMIs will crash the kernel due to
+
+ BRANCH_LINK_TO_FAR(hmi_exception_realmode)
+
+Calling into the OPD instead of the actual code.
+
+Fixes: 2337d207288f ("powerpc/64: CONFIG_RELOCATABLE support for hmi interrupts")
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+[mpe: Use DOTSYM() rather than #ifdef]
+Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
+Acked-by: Michal Suchanek <msuchanek@suse.de>
+---
+ arch/powerpc/kernel/exceptions-64s.S | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
+index 89d32bb79d5e..ed3d6fa8be53 100644
+--- a/arch/powerpc/kernel/exceptions-64s.S
++++ b/arch/powerpc/kernel/exceptions-64s.S
+@@ -1031,7 +1031,7 @@ TRAMP_REAL_BEGIN(hmi_exception_early)
+ EXCEPTION_PROLOG_COMMON_2(PACA_EXGEN)
+ EXCEPTION_PROLOG_COMMON_3(0xe60)
+ addi r3,r1,STACK_FRAME_OVERHEAD
+- BRANCH_LINK_TO_FAR(hmi_exception_realmode) /* Function call ABI */
++ BRANCH_LINK_TO_FAR(DOTSYM(hmi_exception_realmode)) /* Function call ABI */
+ cmpdi cr0,r3,0
+
+ /* Windup the stack. */
+--
+2.20.1
+
diff --git a/series.conf b/series.conf
index b957c73fc2..b24d8565a5 100644
--- a/series.conf
+++ b/series.conf
@@ -20603,6 +20603,7 @@
patches.arch/powerpc-tm-Print-scratch-value.patch
patches.arch/powerpc-tm-Unset-MSR-TS-if-not-recheckpointing.patch
patches.arch/powerpc-pkeys-Fix-handling-of-pkey-state-across-fork.patch
+ patches.arch/powerpc-Fix-HMIs-on-big-endian-with-CONFIG_RELOCATAB.patch
patches.fixes/pstore-ram-Do-not-treat-empty-buffers-as-valid.patch
patches.fixes/pstore-ram-Avoid-NULL-deref-in-ftrace-merging-failur.patch
patches.fixes/selinux-always-allow-mounting-submounts.patch