diff options
author | Balbir Singh | 2017-06-28 19:04:11 +0200 |
---|---|---|
committer | Michael Ellerman | 2017-07-04 03:37:44 +0200 |
commit | 1e0fc9d1eb2b0241a03e0a02bcdb9b5b641b9d35 (patch) | |
tree | 30c28bcf67a505c954c6e28bef10ded1f4ae0d39 | |
parent | powerpc/mm/radix: Implement STRICT_RWX/mark_rodata_ro() for Radix (diff) | |
download | kernel-qcow2-linux-1e0fc9d1eb2b0241a03e0a02bcdb9b5b641b9d35.tar.gz kernel-qcow2-linux-1e0fc9d1eb2b0241a03e0a02bcdb9b5b641b9d35.tar.xz kernel-qcow2-linux-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>
-rw-r--r-- | arch/powerpc/Kconfig | 2 |
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 |