S390: dont call system_shutdown on disabled wait
A disabled wait usually indicates a guest problem. Dont shutdown the guest to allow guest dumping. Have some special cases, e.g. a quiesce disabled wait. In that case we want to shutdown. Long term solution might be a crashed/panic indication. Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
ad0bbc5600
commit
eca3ed0343
@ -407,6 +407,12 @@ static int handle_instruction(CPUS390XState *env, struct kvm_run *run)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static bool is_special_wait_psw(CPUS390XState *env)
|
||||
{
|
||||
/* signal quiesce */
|
||||
return env->kvm_run->psw_addr == 0xfffUL;
|
||||
}
|
||||
|
||||
static int handle_intercept(CPUS390XState *env)
|
||||
{
|
||||
struct kvm_run *run = env->kvm_run;
|
||||
@ -420,6 +426,12 @@ static int handle_intercept(CPUS390XState *env)
|
||||
r = handle_instruction(env, run);
|
||||
break;
|
||||
case ICPT_WAITPSW:
|
||||
if (s390_del_running_cpu(env) == 0 &&
|
||||
is_special_wait_psw(env)) {
|
||||
qemu_system_shutdown_request();
|
||||
}
|
||||
r = EXCP_HALTED;
|
||||
break;
|
||||
case ICPT_CPU_STOP:
|
||||
if (s390_del_running_cpu(env) == 0) {
|
||||
qemu_system_shutdown_request();
|
||||
|
Loading…
x
Reference in New Issue
Block a user