KVM: VMX: Inject #PF on ENCLS as "emulated" #PF
authorSean Christopherson <seanjc@google.com>
Tue, 30 Aug 2022 23:15:59 +0000 (23:15 +0000)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 26 Sep 2022 16:03:07 +0000 (12:03 -0400)
Treat #PFs that occur during emulation of ENCLS as, wait for it, emulated
page faults.  Practically speaking, this is a glorified nop as the
exception is never of the nested flavor, and it's extremely unlikely the
guest is relying on the side effect of an implicit INVLPG on the faulting
address.

Fixes: 70210c044b4e ("KVM: VMX: Add SGX ENCLS[ECREATE] handler to enforce CPUID restrictions")
Signed-off-by: Sean Christopherson <seanjc@google.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Link: https://lore.kernel.org/r/20220830231614.3580124-13-seanjc@google.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/vmx/sgx.c

index aba8ceb..8f95c7c 100644 (file)
@@ -129,7 +129,7 @@ static int sgx_inject_fault(struct kvm_vcpu *vcpu, gva_t gva, int trapnr)
                ex.address = gva;
                ex.error_code_valid = true;
                ex.nested_page_fault = false;
-               kvm_inject_page_fault(vcpu, &ex);
+               kvm_inject_emulated_page_fault(vcpu, &ex);
        } else {
                kvm_inject_gp(vcpu, 0);
        }