Russell Currey's on February 8, 2019 9:11 pm: > 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: <sta...@vger.kernel.org> > Signed-off-by: Russell Currey <rus...@russell.cc> > --- > Since v1: > - no longer use paca to save IAMR, instead use _DAR (thanks mpe) > - remove isync and pnv_wakeup_noloss section (thanks Nick)
Thanks for that, looks good. Reviewed-by: Nicholas Piggin <npig...@gmail.com>