KVM: VMX: Move vmx_flush_tlb() to vmx.c
authorSean Christopherson <sean.j.christopherson@intel.com>
Fri, 20 Mar 2020 21:28:14 +0000 (14:28 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 21 Apr 2020 13:12:50 +0000 (09:12 -0400)
Move vmx_flush_tlb() to vmx.c and make it non-inline static now that all
its callers live in vmx.c.

No functional change intended.

Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
Message-Id: <20200320212833.3507-19-sean.j.christopherson@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/vmx/vmx.c
arch/x86/kvm/vmx/vmx.h

index d843ef3..3cdca4d 100644 (file)
@@ -2838,6 +2838,31 @@ static void exit_lmode(struct kvm_vcpu *vcpu)
 
 #endif
 
+static void vmx_flush_tlb(struct kvm_vcpu *vcpu)
+{
+       struct vcpu_vmx *vmx = to_vmx(vcpu);
+
+       /*
+        * Flush all EPTP/VPID contexts, as the TLB flush _may_ have been
+        * invoked via kvm_flush_remote_tlbs().  Flushing remote TLBs requires
+        * all contexts to be flushed, not just the active context.
+        *
+        * Note, this also ensures a deferred TLB flush with VPID enabled and
+        * EPT disabled invalidates the "correct" VPID, by nuking both L1 and
+        * L2's VPIDs.
+        */
+       if (enable_ept) {
+               ept_sync_global();
+       } else if (enable_vpid) {
+               if (cpu_has_vmx_invvpid_global()) {
+                       vpid_sync_vcpu_global();
+               } else {
+                       vpid_sync_vcpu_single(vmx->vpid);
+                       vpid_sync_vcpu_single(vmx->nested.vpid02);
+               }
+       }
+}
+
 static void vmx_flush_tlb_gva(struct kvm_vcpu *vcpu, gva_t addr)
 {
        /*
index 4597855..4c7b071 100644 (file)
@@ -500,31 +500,6 @@ static inline struct vmcs *alloc_vmcs(bool shadow)
 
 u64 construct_eptp(struct kvm_vcpu *vcpu, unsigned long root_hpa);
 
-static inline void vmx_flush_tlb(struct kvm_vcpu *vcpu)
-{
-       struct vcpu_vmx *vmx = to_vmx(vcpu);
-
-       /*
-        * Flush all EPTP/VPID contexts, as the TLB flush _may_ have been
-        * invoked via kvm_flush_remote_tlbs().  Flushing remote TLBs requires
-        * all contexts to be flushed, not just the active context.
-        *
-        * Note, this also ensures a deferred TLB flush with VPID enabled and
-        * EPT disabled invalidates the "correct" VPID, by nuking both L1 and
-        * L2's VPIDs.
-        */
-       if (enable_ept) {
-               ept_sync_global();
-       } else if (enable_vpid) {
-               if (cpu_has_vmx_invvpid_global()) {
-                       vpid_sync_vcpu_global();
-               } else {
-                       vpid_sync_vcpu_single(vmx->vpid);
-                       vpid_sync_vcpu_single(vmx->nested.vpid02);
-               }
-       }
-}
-
 static inline void decache_tsc_multiplier(struct vcpu_vmx *vmx)
 {
        vmx->current_tsc_ratio = vmx->vcpu.arch.tsc_scaling_ratio;