powerpc/64s/kuap: Add missing isync to KUAP restore paths
authorNicholas Piggin <npiggin@gmail.com>
Wed, 29 Apr 2020 06:56:50 +0000 (16:56 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 28 May 2020 13:24:37 +0000 (23:24 +1000)
commitcb2b53cbffe3c388cd676b63f34e54ceb2643ae2
treed91076e6f54be3043a3dd526ea96f0d5fa451dd3
parentbcec081ecc940fc38730b29c743bbee661164161
powerpc/64s/kuap: Add missing isync to KUAP restore paths

Writing the AMR register is documented to require context
synchronizing operations before and after, for it to take effect as
expected. The KUAP restore at interrupt exit time deliberately avoids
the isync after the AMR update because it only needs to take effect
after the context synchronizing RFID that soon follows. Add a comment
for this.

The missing isync before the update doesn't have an obvious
justification, and seems it could theoretically allow a rogue user
access to leak past the AMR update. Add isyncs for these.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200429065654.1677541-3-npiggin@gmail.com
arch/powerpc/include/asm/book3s/64/kup-radix.h