On Tue, 5 Dec 2017 09:33:21 +0100 Christian Borntraeger <borntraeger@xxxxxxxxxx> wrote: > From: Janosch Frank <frankja@xxxxxxxxxxxxxxxxxx> > > All skey functions call skey_check_enable at their start, which checks > if we are in the PSTATE and injects a privileged operation exception > if we are. > > Unfortunately they continue processing afterwards and perform the > operation anyhow as skey_check_enable does not deliver an error if the > exception injection was successful. > > Let's move the PSTATE check into the skey functions and exit them on > such an occasion, also we now do not enable skey handling anymore in > such a case. > > Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxxxxxxx> > Reviewed-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> > Fixes: a7e19ab ("KVM: s390: handle missing storage-key facility") > Cc: <stable@xxxxxxxxxxxxxxx> # v4.8+ > Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> > --- > arch/s390/kvm/priv.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) Reviewed-by: Cornelia Huck <cohuck@xxxxxxxxxx> This reminds me of something I stumbled upon the other day: handle_ri() and handle_gs() (both implemented in priv.c) don't seem to have a check for PSTATE, yet they enable ri/gs before retrying the instruction. Is that correct? -- To unsubscribe from this list: send the line "unsubscribe linux-s390" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html