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: c2821c8213 ("ANDROID: KVM: arm64: Initialize hypervisor vm state at EL2")
Change-Id: Ia154d565bd0a461c7f9362baa499df51eb621a53
Signed-off-by: Fuad Tabba <tabba@google.com>
This commit is contained in:
Fuad Tabba
2024-11-19 10:59:27 +00:00
parent 6a858aa97f
commit 0ae6fbdf4e
+2 -1
View File
@@ -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);