• Sean Christopherson's avatar
    KVM: x86: Export kvm_mmu_gva_to_gpa_{read,write}() for SGX (VMX) · 54f958cd
    Sean Christopherson authored
    Export the gva_to_gpa() helpers for use by SGX virtualization when
    executing ENCLS[ECREATE] and ENCLS[EINIT] on behalf of the guest.
    To execute ECREATE and EINIT, KVM must obtain the GPA of the target
    Secure Enclave Control Structure (SECS) in order to get its
    corresponding HVA.
    
    Because the SECS must reside in the Enclave Page Cache (EPC), copying
    the SECS's data to a host-controlled buffer via existing exported
    helpers is not a viable option as the EPC is not readable or writable
    by the kernel.
    
    SGX virtualization will also use gva_to_gpa() to obtain HVAs for
    non-EPC pages in order to pass user pointers directly to ECREATE and
    EINIT, which avoids having to copy pages worth of data into the kernel.
    Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
    Acked-by: default avatarJarkko Sakkinen <jarkko@kernel.org>
    Signed-off-by: default avatarKai Huang <kai.huang@intel.com>
    Message-Id: <02f37708321bcdfaa2f9d41c8478affa6e84b04d.1618196135.git.kai.huang@intel.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    54f958cd
x86.c 307 KB