aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/lib/code-patching.c
diff options
context:
space:
mode:
authorRussell Currey <[email protected]>2019-04-18 06:51:16 +0000
committerMichael Ellerman <[email protected]>2019-04-21 13:05:52 +0000
commita3f3072db6cad40895c585dce65e36aab997f042 (patch)
treea76f2ef8e08c50710ff87b923669f1d06a0d23a0 /arch/powerpc/lib/code-patching.c
parentpowerpc/numa: document topology_updates_enabled, disable by default (diff)
downloadkernel-a3f3072db6cad40895c585dce65e36aab997f042.tar.gz
kernel-a3f3072db6cad40895c585dce65e36aab997f042.zip
powerpc/powernv/idle: Restore IAMR after idle
Without restoring the IAMR after idle, execution prevention on POWER9 with Radix MMU is overwritten and the kernel can freely execute userspace without faulting. This is necessary when returning from any stop state that modifies user state, as well as hypervisor state. To test how this fails without this patch, load the lkdtm driver and do the following: $ echo EXEC_USERSPACE > /sys/kernel/debug/provoke-crash/DIRECT which won't fault, then boot the kernel with powersave=off, where it will fault. Applying this patch will fix this. Fixes: 3b10d0095a1e ("powerpc/mm/radix: Prevent kernel execution of user space") Cc: [email protected] # v4.10+ Signed-off-by: Russell Currey <[email protected]> Reviewed-by: Akshay Adiga <[email protected]> Reviewed-by: Nicholas Piggin <[email protected]> Signed-off-by: Michael Ellerman <[email protected]>
Diffstat (limited to 'arch/powerpc/lib/code-patching.c')
0 files changed, 0 insertions, 0 deletions