]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 4.19
authorSasha Levin <sashal@kernel.org>
Sat, 23 May 2020 14:47:17 +0000 (10:47 -0400)
committerSasha Levin <sashal@kernel.org>
Sat, 23 May 2020 14:47:17 +0000 (10:47 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-4.19/powerpc-64s-disable-strict_kernel_rwx.patch [new file with mode: 0644]
queue-4.19/powerpc-remove-strict_kernel_rwx-incompatibility-wit.patch [new file with mode: 0644]
queue-4.19/series

diff --git a/queue-4.19/powerpc-64s-disable-strict_kernel_rwx.patch b/queue-4.19/powerpc-64s-disable-strict_kernel_rwx.patch
new file mode 100644 (file)
index 0000000..dfe35ba
--- /dev/null
@@ -0,0 +1,50 @@
+From 502b5903f8e9809e9cb9fbb004212e41c1a5e639 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 20 May 2020 23:36:05 +1000
+Subject: powerpc/64s: Disable STRICT_KERNEL_RWX
+
+From: Michael Ellerman <mpe@ellerman.id.au>
+
+[ Upstream commit 8659a0e0efdd975c73355dbc033f79ba3b31e82c ]
+
+Several strange crashes have been eventually traced back to
+STRICT_KERNEL_RWX and its interaction with code patching.
+
+Various paths in our ftrace, kprobes and other patching code need to
+be hardened against patching failures, otherwise we can end up running
+with partially/incorrectly patched ftrace paths, kprobes or jump
+labels, which can then cause strange crashes.
+
+Although fixes for those are in development, they're not -rc material.
+
+There also seem to be problems with the underlying strict RWX logic,
+which needs further debugging.
+
+So for now disable STRICT_KERNEL_RWX on 64-bit to prevent people from
+enabling the option and tripping over the bugs.
+
+Fixes: 1e0fc9d1eb2b ("powerpc/Kconfig: Enable STRICT_KERNEL_RWX for some configs")
+Cc: stable@vger.kernel.org # v4.13+
+Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
+Link: https://lore.kernel.org/r/20200520133605.972649-1-mpe@ellerman.id.au
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/powerpc/Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
+index da48a2ca272e..f38d153d2586 100644
+--- a/arch/powerpc/Kconfig
++++ b/arch/powerpc/Kconfig
+@@ -139,7 +139,7 @@ config PPC
+       select ARCH_HAS_MEMBARRIER_CALLBACKS
+       select ARCH_HAS_SCALED_CPUTIME          if VIRT_CPU_ACCOUNTING_NATIVE
+       select ARCH_HAS_SG_CHAIN
+-      select ARCH_HAS_STRICT_KERNEL_RWX       if ((PPC_BOOK3S_64 || PPC32) && !HIBERNATION)
++      select ARCH_HAS_STRICT_KERNEL_RWX       if (PPC32 && !HIBERNATION)
+       select ARCH_HAS_TICK_BROADCAST          if GENERIC_CLOCKEVENTS_BROADCAST
+       select ARCH_HAS_UACCESS_FLUSHCACHE      if PPC64
+       select ARCH_HAS_UBSAN_SANITIZE_ALL
+-- 
+2.25.1
+
diff --git a/queue-4.19/powerpc-remove-strict_kernel_rwx-incompatibility-wit.patch b/queue-4.19/powerpc-remove-strict_kernel_rwx-incompatibility-wit.patch
new file mode 100644 (file)
index 0000000..170de63
--- /dev/null
@@ -0,0 +1,39 @@
+From 1f2170371babe745c5f74fd3704f8d3913b83cb7 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 24 Dec 2019 17:41:26 +1100
+Subject: powerpc: Remove STRICT_KERNEL_RWX incompatibility with RELOCATABLE
+
+From: Russell Currey <ruscur@russell.cc>
+
+[ Upstream commit c55d7b5e64265fdca45c85b639013e770bde2d0e ]
+
+I have tested this with the Radix MMU and everything seems to work, and
+the previous patch for Hash seems to fix everything too.
+STRICT_KERNEL_RWX should still be disabled by default for now.
+
+Please test STRICT_KERNEL_RWX + RELOCATABLE!
+
+Signed-off-by: Russell Currey <ruscur@russell.cc>
+Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
+Link: https://lore.kernel.org/r/20191224064126.183670-2-ruscur@russell.cc
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/powerpc/Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
+index 6f475dc5829b..da48a2ca272e 100644
+--- a/arch/powerpc/Kconfig
++++ b/arch/powerpc/Kconfig
+@@ -139,7 +139,7 @@ config PPC
+       select ARCH_HAS_MEMBARRIER_CALLBACKS
+       select ARCH_HAS_SCALED_CPUTIME          if VIRT_CPU_ACCOUNTING_NATIVE
+       select ARCH_HAS_SG_CHAIN
+-      select ARCH_HAS_STRICT_KERNEL_RWX       if ((PPC_BOOK3S_64 || PPC32) && !RELOCATABLE && !HIBERNATION)
++      select ARCH_HAS_STRICT_KERNEL_RWX       if ((PPC_BOOK3S_64 || PPC32) && !HIBERNATION)
+       select ARCH_HAS_TICK_BROADCAST          if GENERIC_CLOCKEVENTS_BROADCAST
+       select ARCH_HAS_UACCESS_FLUSHCACHE      if PPC64
+       select ARCH_HAS_UBSAN_SANITIZE_ALL
+-- 
+2.25.1
+
index 7089bce54ce9be6e344f7ef76c5d2012dd7b8f7d..99172a208c4ea674a27c0a69c62c6d92323fa7cf 100644 (file)
@@ -44,3 +44,5 @@ apparmor-fix-aa_label-refcnt-leak-in-policy_update.patch
 dmaengine-tegra210-adma-fix-an-error-handling-path-in-tegra_adma_probe.patch
 dmaengine-owl-use-correct-lock-in-owl_dma_get_pchan.patch
 drm-i915-gvt-init-dpll-ddi-vreg-for-virtual-display-instead-of-inheritance.patch
+powerpc-remove-strict_kernel_rwx-incompatibility-wit.patch
+powerpc-64s-disable-strict_kernel_rwx.patch