diff options
| author | Russell Currey <[email protected]> | 2019-04-18 06:51:16 +0000 |
|---|---|---|
| committer | Michael Ellerman <[email protected]> | 2019-04-21 13:05:52 +0000 |
| commit | a3f3072db6cad40895c585dce65e36aab997f042 (patch) | |
| tree | a76f2ef8e08c50710ff87b923669f1d06a0d23a0 /arch/powerpc/lib/code-patching.c | |
| parent | powerpc/numa: document topology_updates_enabled, disable by default (diff) | |
| download | kernel-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
