KVM: arm64: Indicate SYSTEM_RESET2 in kvm_run::system_event flags field
authorWill Deacon <will@kernel.org>
Mon, 21 Feb 2022 15:35:24 +0000 (15:35 +0000)
committerMarc Zyngier <maz@kernel.org>
Mon, 21 Feb 2022 16:02:55 +0000 (16:02 +0000)
commit34739fd95fab3a5efb0422e4f012b685e33598dc
tree49e5aba0a7670c819e5a00259cb20e0691b0601f
parentd43583b890e7cb0078d13d056753a56602b92406
KVM: arm64: Indicate SYSTEM_RESET2 in kvm_run::system_event flags field

When handling reset and power-off PSCI calls from the guest, we
initialise X0 to PSCI_RET_INTERNAL_FAILURE in case the VMM tries to
re-run the vCPU after issuing the call.

Unfortunately, this also means that the VMM cannot see which PSCI call
was issued and therefore cannot distinguish between PSCI SYSTEM_RESET
and SYSTEM_RESET2 calls, which is necessary in order to determine the
validity of the "reset_type" in X1.

Allocate bit 0 of the previously unused 'flags' field of the
system_event structure so that we can indicate the PSCI call used to
initiate the reset.

Cc: Marc Zyngier <maz@kernel.org>
Cc: James Morse <james.morse@arm.com>
Cc: Alexandru Elisei <alexandru.elisei@arm.com>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20220221153524.15397-4-will@kernel.org
Documentation/virt/kvm/api.rst
arch/arm64/include/uapi/asm/kvm.h
arch/arm64/kvm/psci.c