Am 01.07.24 um 09:25 schrieb Sven Schnelle:
+ vcpu->arch.sie_block->gpsw = new_psw;
+ if (!is_valid_psw(&vcpu->arch.sie_block->gpsw))
+ return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
Shouldn't the gpsw get updated with new_psw after the check? POP
says "The operation
is suppressed on all addressing and protection exceptions."
Only for exception of the instruction but not for the target PSW.
POP says:
The other PSW fields which are to be loaded by the
instruction are not checked for validity before they are
loaded. However, immediately after loading, a speci-
fication exception is recognized, and a program inter-
ruption occurs, when any of the following is true for
the newly loaded PSW
Ok, sorry for the noise.
You can repend by doing a review and send an RB or other feedback :-)