Message ID | 20200220204356.8837-3-sean.j.christopherson@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM: x86: Clean up VMX's TLB flushing code | expand |
Sean Christopherson <sean.j.christopherson@intel.com> writes: > 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. > > Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> > --- > arch/x86/kvm/vmx/ops.h | 26 +++++++++++++------------- > 1 file changed, 13 insertions(+), 13 deletions(-) > > diff --git a/arch/x86/kvm/vmx/ops.h b/arch/x86/kvm/vmx/ops.h > index 45eaedee2ac0..a2b0689e65e3 100644 > --- a/arch/x86/kvm/vmx/ops.h > +++ b/arch/x86/kvm/vmx/ops.h > @@ -253,19 +253,6 @@ static inline void __invept(unsigned long ext, u64 eptp, gpa_t 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) > { > if (vpid == 0) > @@ -289,6 +276,19 @@ static inline void vpid_sync_context(int vpid) > 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) > { > __invept(VMX_EPT_EXTENT_GLOBAL, 0, 0); Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
diff --git a/arch/x86/kvm/vmx/ops.h b/arch/x86/kvm/vmx/ops.h index 45eaedee2ac0..a2b0689e65e3 100644 --- a/arch/x86/kvm/vmx/ops.h +++ b/arch/x86/kvm/vmx/ops.h @@ -253,19 +253,6 @@ static inline void __invept(unsigned long ext, u64 eptp, gpa_t 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) { if (vpid == 0) @@ -289,6 +276,19 @@ static inline void vpid_sync_context(int vpid) 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) { __invept(VMX_EPT_EXTENT_GLOBAL, 0, 0);
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. Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> --- arch/x86/kvm/vmx/ops.h | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-)