forked from Minki/linux
KVM: VMX: Move vpid_sync_vcpu_addr() down a few lines
Move vpid_sync_vcpu_addr() below vpid_sync_context() so that it can be refactored in a future patch to call vpid_sync_context() directly when the "individual address" INVVPID variant isn't supported. No functional change intended. Reviewed-by: Miaohe Lin <linmiaohe@huawei.com> Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> Message-Id: <20200320212833.3507-11-sean.j.christopherson@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
446ace4bca
commit
8a8b097c6c
@ -268,19 +268,6 @@ static inline void __invept(unsigned long ext, u64 eptp, gpa_t gpa)
|
|||||||
vmx_asm2(invept, "r"(ext), "m"(operand), ext, eptp, gpa);
|
vmx_asm2(invept, "r"(ext), "m"(operand), ext, eptp, gpa);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool vpid_sync_vcpu_addr(int vpid, gva_t addr)
|
|
||||||
{
|
|
||||||
if (vpid == 0)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
if (cpu_has_vmx_invvpid_individual_addr()) {
|
|
||||||
__invvpid(VMX_VPID_EXTENT_INDIVIDUAL_ADDR, vpid, addr);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void vpid_sync_vcpu_single(int vpid)
|
static inline void vpid_sync_vcpu_single(int vpid)
|
||||||
{
|
{
|
||||||
if (vpid == 0)
|
if (vpid == 0)
|
||||||
@ -304,6 +291,19 @@ static inline void vpid_sync_context(int vpid)
|
|||||||
vpid_sync_vcpu_global();
|
vpid_sync_vcpu_global();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool vpid_sync_vcpu_addr(int vpid, gva_t addr)
|
||||||
|
{
|
||||||
|
if (vpid == 0)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (cpu_has_vmx_invvpid_individual_addr()) {
|
||||||
|
__invvpid(VMX_VPID_EXTENT_INDIVIDUAL_ADDR, vpid, addr);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
static inline void ept_sync_global(void)
|
static inline void ept_sync_global(void)
|
||||||
{
|
{
|
||||||
__invept(VMX_EPT_EXTENT_GLOBAL, 0, 0);
|
__invept(VMX_EPT_EXTENT_GLOBAL, 0, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user