diff --git a/arch/arm64/kvm/hyp/nvhe/hyp-main.c b/arch/arm64/kvm/hyp/nvhe/hyp-main.c index 67ed255b1699..44d205ae734e 100644 --- a/arch/arm64/kvm/hyp/nvhe/hyp-main.c +++ b/arch/arm64/kvm/hyp/nvhe/hyp-main.c @@ -290,7 +290,6 @@ static void handle_pvm_exit_hvc64(struct kvm_vcpu *host_vcpu, struct kvm_vcpu *s case PSCI_0_2_FN_CPU_OFF: case PSCI_0_2_FN_SYSTEM_OFF: - case PSCI_0_2_FN_SYSTEM_RESET: case PSCI_0_2_FN_CPU_SUSPEND: case PSCI_0_2_FN64_CPU_SUSPEND: n = 1; diff --git a/arch/arm64/kvm/hyp/nvhe/pkvm.c b/arch/arm64/kvm/hyp/nvhe/pkvm.c index c431431d22af..e19af9e891f7 100644 --- a/arch/arm64/kvm/hyp/nvhe/pkvm.c +++ b/arch/arm64/kvm/hyp/nvhe/pkvm.c @@ -1017,6 +1017,13 @@ static bool pkvm_handle_psci(struct kvm_vcpu *vcpu) case PSCI_1_0_FN_PSCI_FEATURES: return pvm_psci_features(vcpu); case PSCI_0_2_FN_SYSTEM_RESET: + /* + * NOTE: Until we add proper support for reset for protected + * VMs, repaint reset requests as system off because some VMMs + * use reset when tearing down a VM. + */ + vcpu_set_reg(vcpu, 0, PSCI_0_2_FN_SYSTEM_OFF); + fallthrough; case PSCI_0_2_FN_CPU_SUSPEND: case PSCI_0_2_FN64_CPU_SUSPEND: case PSCI_0_2_FN_SYSTEM_OFF: