diff options
author | Michael Ellerman <mpe@ellerman.id.au> | 2017-07-14 16:51:23 +1000 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2017-07-18 19:54:24 +1000 |
commit | 029d9252b116fa52a95150819e62af1f6e420fe5 (patch) | |
tree | 6f7832ca67de31a117dbb1b3346bfae3ec1a348e /arch/mips/include/asm/mach-loongson64/cpu-feature-overrides.h | |
parent | fa7f9189e017213bad63b93a76de5c715cd62a96 (diff) | |
download | linux-stable-029d9252b116fa52a95150819e62af1f6e420fe5.tar.gz linux-stable-029d9252b116fa52a95150819e62af1f6e420fe5.tar.bz2 linux-stable-029d9252b116fa52a95150819e62af1f6e420fe5.zip |
powerpc/mm: Mark __init memory no-execute when STRICT_KERNEL_RWX=y
Currently even with STRICT_KERNEL_RWX we leave the __init text marked
executable after init, which is bad.
Add a hook to mark it NX (no-execute) before we free it, and implement
it for radix and hash.
Note that we use __init_end as the end address, not _einittext,
because overlaps_kernel_text() uses __init_end, because there are
additional executable sections other than .init.text between
__init_begin and __init_end.
Tested on radix and hash with:
0:mon> p $__init_begin
*** 400 exception occurred
Fixes: 1e0fc9d1eb2b ("powerpc/Kconfig: Enable STRICT_KERNEL_RWX for some configs")
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/mips/include/asm/mach-loongson64/cpu-feature-overrides.h')
0 files changed, 0 insertions, 0 deletions