powerpc/Kconfig: Enable STRICT_KERNEL_RWX for some configs
authorBalbir Singh <bsingharora@gmail.com>
Wed, 28 Jun 2017 17:04:11 +0000 (03:04 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 4 Jul 2017 01:37:44 +0000 (11:37 +1000)
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>
arch/powerpc/Kconfig

index 5ef7638538765883dc58bd214065deb7377239c1..8998eefe163897ade851c67a8eaafbb59dcec927 100644 (file)
@@ -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