]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 5.4
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-5.4/powerpc-64s-disable-strict_kernel_rwx.patch [new file with mode: 0644]
queue-5.4/powerpc-remove-strict_kernel_rwx-incompatibility-wit.patch [new file with mode: 0644]
queue-5.4/series

diff --git a/queue-5.4/powerpc-64s-disable-strict_kernel_rwx.patch b/queue-5.4/powerpc-64s-disable-strict_kernel_rwx.patch
new file mode 100644 (file)
index 0000000..678736a
--- /dev/null
@@ -0,0 +1,50 @@
+From 6a587b18a62e84eaf358a9813a7ac8a158290f05 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 198bbf42e398..3dc5aecdd853 100644
+--- a/arch/powerpc/Kconfig
++++ b/arch/powerpc/Kconfig
+@@ -133,7 +133,7 @@ config PPC
+       select ARCH_HAS_PTE_SPECIAL
+       select ARCH_HAS_MEMBARRIER_CALLBACKS
+       select ARCH_HAS_SCALED_CPUTIME          if VIRT_CPU_ACCOUNTING_NATIVE && PPC_BOOK3S_64
+-      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
+       select ARCH_HAS_UACCESS_MCSAFE          if PPC64
+-- 
+2.25.1
+
diff --git a/queue-5.4/powerpc-remove-strict_kernel_rwx-incompatibility-wit.patch b/queue-5.4/powerpc-remove-strict_kernel_rwx-incompatibility-wit.patch
new file mode 100644 (file)
index 0000000..6e43c24
--- /dev/null
@@ -0,0 +1,39 @@
+From 5fde7c3273d323c907e5bcaa88b1c3433a7a7d34 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 2b1033f13210..198bbf42e398 100644
+--- a/arch/powerpc/Kconfig
++++ b/arch/powerpc/Kconfig
+@@ -133,7 +133,7 @@ config PPC
+       select ARCH_HAS_PTE_SPECIAL
+       select ARCH_HAS_MEMBARRIER_CALLBACKS
+       select ARCH_HAS_SCALED_CPUTIME          if VIRT_CPU_ACCOUNTING_NATIVE && PPC_BOOK3S_64
+-      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
+       select ARCH_HAS_UACCESS_MCSAFE          if PPC64
+-- 
+2.25.1
+
index f12d14954ca372a7a6f3a03a92e73685bbac33a6..cf9521efa495f7ea969055ea7ecacba181ec0d3a 100644 (file)
@@ -74,3 +74,5 @@ dmaengine-owl-use-correct-lock-in-owl_dma_get_pchan.patch
 vsprintf-don-t-obfuscate-null-and-error-pointers.patch
 drm-i915-gvt-init-dpll-ddi-vreg-for-virtual-display-instead-of-inheritance.patch
 drm-i915-propagate-error-from-completed-fences.patch
+powerpc-remove-strict_kernel_rwx-incompatibility-wit.patch
+powerpc-64s-disable-strict_kernel_rwx.patch