From 0ae6fbdf4e843edf156ddad753f79631e2b6fbc7 Mon Sep 17 00:00:00 2001 From: Fuad Tabba Date: Tue, 19 Nov 2024 10:59:27 +0000 Subject: [PATCH] ANDROID: KVM: arm64: Reset protected VM system registers before initializing traps A protected guest's feature registers are used to determine which traps are set, therefore, initialize them before initializing trap registers. Bug: 357781595 Fixes: c2821c8213e2 ("ANDROID: KVM: arm64: Initialize hypervisor vm state at EL2") Change-Id: Ia154d565bd0a461c7f9362baa499df51eb621a53 Signed-off-by: Fuad Tabba --- arch/arm64/kvm/hyp/nvhe/pkvm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm64/kvm/hyp/nvhe/pkvm.c b/arch/arm64/kvm/hyp/nvhe/pkvm.c index 261424177f0d..15122bac5524 100644 --- a/arch/arm64/kvm/hyp/nvhe/pkvm.c +++ b/arch/arm64/kvm/hyp/nvhe/pkvm.c @@ -615,6 +615,8 @@ static int init_pkvm_hyp_vcpu(struct pkvm_hyp_vcpu *hyp_vcpu, hyp_vcpu->vcpu.arch.debug_ptr = &host_vcpu->arch.vcpu_debug_state; hyp_vcpu->vcpu.arch.hyp_reqs->type = KVM_HYP_LAST_REQ; + kvm_reset_pvm_sys_regs(&hyp_vcpu->vcpu); + ret = pkvm_vcpu_init_traps(hyp_vcpu); if (ret) goto done; @@ -628,7 +630,6 @@ static int init_pkvm_hyp_vcpu(struct pkvm_hyp_vcpu *hyp_vcpu, goto done; pkvm_vcpu_init_ptrauth(hyp_vcpu); - kvm_reset_pvm_sys_regs(&hyp_vcpu->vcpu); done: if (ret) unpin_host_vcpu(hyp_vcpu);