KVM: nSVM: Always inject a #GP if mapping VMCB12 fails on nested VMRUN

nested_svm_vmrun() currently only injects a #GP if kvm_vcpu_map() fails
with -EINVAL. But it could also fail with -EFAULT if creating a host
mapping failed. Inject a #GP in all cases, no reason to treat failure
modes differently.

Fixes: 8c5fbf1a72 ("KVM/nSVM: Use the new mapping API for mapping guest memory")
CC: stable@vger.kernel.org
Co-developed-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Yosry Ahmed <yosry@kernel.org>
Link: https://patch.msgid.link/20260303003421.2185681-6-yosry@kernel.org
Signed-off-by: Sean Christopherson <seanjc@google.com>
This commit is contained in:
Yosry Ahmed 2026-03-03 00:33:59 +00:00 committed by Sean Christopherson
parent ac17892e51
commit 01ddcdc55e

View File

@ -1010,12 +1010,9 @@ int nested_svm_vmrun(struct kvm_vcpu *vcpu)
} }
vmcb12_gpa = svm->vmcb->save.rax; vmcb12_gpa = svm->vmcb->save.rax;
ret = kvm_vcpu_map(vcpu, gpa_to_gfn(vmcb12_gpa), &map); if (kvm_vcpu_map(vcpu, gpa_to_gfn(vmcb12_gpa), &map)) {
if (ret == -EINVAL) {
kvm_inject_gp(vcpu, 0); kvm_inject_gp(vcpu, 0);
return 1; return 1;
} else if (ret) {
return kvm_skip_emulated_instruction(vcpu);
} }
ret = kvm_skip_emulated_instruction(vcpu); ret = kvm_skip_emulated_instruction(vcpu);