summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorBalbir Singh <bsingharora@gmail.com>2017-06-29 03:04:11 +1000
committerMichael Ellerman <mpe@ellerman.id.au>2017-07-04 11:37:44 +1000
commit1e0fc9d1eb2b0241a03e0a02bcdb9b5b641b9d35 (patch)
tree30c28bcf67a505c954c6e28bef10ded1f4ae0d39 /arch
parent7614ff3272a115a047139173cc04466e8132a1f2 (diff)
downloadlinux-stable-1e0fc9d1eb2b0241a03e0a02bcdb9b5b641b9d35.tar.gz
linux-stable-1e0fc9d1eb2b0241a03e0a02bcdb9b5b641b9d35.tar.bz2
linux-stable-1e0fc9d1eb2b0241a03e0a02bcdb9b5b641b9d35.zip
powerpc/Kconfig: Enable STRICT_KERNEL_RWX for some configs
All code that patches kernel text has been moved over to using patch_instruction() and patch_instruction() is able to cope with the kernel text being read only. The linker script has been updated to ensure the read only data ends on a large page boundary, so it and the preceding kernel text can be marked R_X. We also have implementations of mark_rodata_ro() for Hash and Radix MMU modes. There are some corner-cases missing when the kernel is built relocatable, so for now make it depend on !RELOCATABLE. There's also a temporary workaround to depend on !HIBERNATION to avoid a build failure, that will be removed once we've merged with the PM tree. Signed-off-by: Balbir Singh <bsingharora@gmail.com> [mpe: Make it depend on !RELOCATABLE, munge change log] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/Kconfig2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 5ef763853876..8998eefe1638 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -164,6 +164,8 @@ config PPC
select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT
select HAVE_ARCH_SECCOMP_FILTER
select HAVE_ARCH_TRACEHOOK
+ select ARCH_HAS_STRICT_KERNEL_RWX if (PPC_BOOK3S_64 && !RELOCATABLE && !HIBERNATION)
+ select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX
select HAVE_CBPF_JIT if !PPC64
select HAVE_CONTEXT_TRACKING if PPC64
select HAVE_DEBUG_KMEMLEAK