Subject: Re: [v6,01/10] powerpc/powernv/idle: Restore IAMR after idle

From: Michael Ellerman <[email-masked]>
Date: Mon, 22 Apr 2019 00:19:14 +1000 (AEST)

On Thu, 2019-04-18 at 06:51:16 UTC, Michael Ellerman wrote:
> From: Russell Currey <[email-masked]>
> 
> 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-masked] # v4.10+
> Signed-off-by: Russell Currey <[email-masked]>
> Reviewed-by: Akshay Adiga <[email-masked]>
> Reviewed-by: Nicholas Piggin <[email-masked]>
> Signed-off-by: Michael Ellerman <[email-masked]>

Series applied to powerpc next.

https://git.kernel.org/powerpc/c/a3f3072db6cad40895c585dce65e36aa

cheers