s390x/kvm: Fixed bad SIGP SET-ARCHITECTURE handler
The SET-ARCHITECTURE handler in QEMU caused a program interruption. This is wrong according to the "Principles of Operations" specification (since SIGP should never cause a program interrupt) and was likely only introduced for debugging purposes. Since we handle SET-ARCHITECTURE in the kernel already and only dropped to user space in case of bad mode parameters, we should just report INVALID PARAMETER in QEMU instead. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
This commit is contained in:
parent
819bd3091e
commit
0788082a4b
@ -676,8 +676,10 @@ static int handle_sigp(S390CPU *cpu, struct kvm_run *run, uint8_t ipa1)
|
||||
cc = kvm_s390_cpu_restart(target_cpu);
|
||||
break;
|
||||
case SIGP_SET_ARCH:
|
||||
/* make the caller panic */
|
||||
return -1;
|
||||
*statusreg &= 0xffffffff00000000UL;
|
||||
*statusreg |= SIGP_STAT_INVALID_PARAMETER;
|
||||
cc = 1; /* status stored */
|
||||
break;
|
||||
case SIGP_INITIAL_CPU_RESET:
|
||||
cc = s390_cpu_initial_reset(target_cpu);
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user