Commit 99040447 authored by Pranavkumar Sawargaonkar's avatar Pranavkumar Sawargaonkar Committed by Peter Maydell
Browse files

kvm: Handle exit reason KVM_EXIT_SYSTEM_EVENT



In-kernel PSCI v0.2 emulation of KVM ARM/ARM64 forwards SYSTEM_OFF
and SYSTEM_RESET function calls to QEMU using KVM_EXIT_SYSTEM_EVENT
exit reason.

This patch updates kvm_cpu_exec() to handle KVM_SYSTEM_EVENT_SHUTDOWN
and KVM_SYSTEM_EVENT_RESET system-level events from QEMU-side.

Signed-off-by: default avatarPranavkumar Sawargaonkar <pranavkumar@linaro.org>
Signed-off-by: default avatarAnup Patel <anup.patel@linaro.org>
Reviewed-by: default avatarPeter Maydell <peter.maydell@linaro.org>
Message-id: 1402901605-24551-4-git-send-email-pranavkumar@linaro.org
Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
parent a0289b8a
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -1751,6 +1751,22 @@ int kvm_cpu_exec(CPUState *cpu)
        case KVM_EXIT_INTERNAL_ERROR:
            ret = kvm_handle_internal_error(cpu, run);
            break;
        case KVM_EXIT_SYSTEM_EVENT:
            switch (run->system_event.type) {
            case KVM_SYSTEM_EVENT_SHUTDOWN:
                qemu_system_shutdown_request();
                ret = EXCP_INTERRUPT;
                break;
            case KVM_SYSTEM_EVENT_RESET:
                qemu_system_reset_request();
                ret = EXCP_INTERRUPT;
                break;
            default:
                DPRINTF("kvm_arch_handle_exit\n");
                ret = kvm_arch_handle_exit(cpu, run);
                break;
            }
            break;
        default:
            DPRINTF("kvm_arch_handle_exit\n");
            ret = kvm_arch_handle_exit(cpu, run);