From 5f9b016e4e96429f9d076d4b31e5d309d14df17b Mon Sep 17 00:00:00 2001 From: Anup Patel Date: Mon, 6 Oct 2014 12:15:18 +0100 Subject: [PATCH] kvmtool: Handle exit reason KVM_EXIT_SYSTEM_EVENT The KVM_EXIT_SYSTEM_EVENT exit reason was added to define architecture independent system-wide events for a Guest. Currently, it is used by in-kernel PSCI-0.2 emulation of KVM ARM/ARM64 to inform user space about PSCI SYSTEM_OFF or PSCI SYSTEM_RESET request. For now, we simply treat all system-wide guest events as shutdown request in KVMTOOL. Signed-off-by: Pranavkumar Sawargaonkar Signed-off-by: Anup Patel Reviewed-by: Andre Przywara [will: removed useless prints] Signed-off-by: Will Deacon --- kvm-cpu.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/kvm-cpu.c b/kvm-cpu.c index ee0a8ec..5d90664 100644 --- a/kvm-cpu.c +++ b/kvm-cpu.c @@ -160,6 +160,22 @@ int kvm_cpu__start(struct kvm_cpu *cpu) goto exit_kvm; case KVM_EXIT_SHUTDOWN: goto exit_kvm; + case KVM_EXIT_SYSTEM_EVENT: + /* + * Print the type of system event and + * 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); + goto exit_kvm; + }; + break; default: { bool ret;