diff --git a/kvm-cpu.c b/kvm-cpu.c index 5d90664..664795f 100644 --- a/kvm-cpu.c +++ b/kvm-cpu.c @@ -166,13 +166,18 @@ int kvm_cpu__start(struct kvm_cpu *cpu) * treat all system events as shutdown request. */ switch (cpu->kvm_run->system_event.type) { - case KVM_SYSTEM_EVENT_RESET: - /* Fall through for now */ - case KVM_SYSTEM_EVENT_SHUTDOWN: - goto exit_kvm; default: pr_warning("unknown system event type %d", cpu->kvm_run->system_event.type); + /* fall through for now */ + case KVM_SYSTEM_EVENT_RESET: + /* Fall through for now */ + case KVM_SYSTEM_EVENT_SHUTDOWN: + /* + * Ensure that all VCPUs are torn down, + * regardless of which CPU generated the event. + */ + kvm_cpu__reboot(cpu->kvm); goto exit_kvm; }; break;