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 aba8cebdc587fc271d11689ee9440b423557aecc..8f95c7c0143359cc617641eddbf422018d77cf63 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);
        }