@@ -276,17 +276,15 @@ static inline void vpid_sync_context(int vpid)
vpid_sync_vcpu_global();
}
-static inline bool vpid_sync_vcpu_addr(int vpid, gva_t addr)
+static inline void vpid_sync_vcpu_addr(int vpid, gva_t addr)
{
if (vpid == 0)
- return true;
+ return;
- if (cpu_has_vmx_invvpid_individual_addr()) {
+ if (cpu_has_vmx_invvpid_individual_addr())
__invvpid(VMX_VPID_EXTENT_INDIVIDUAL_ADDR, vpid, addr);
- return true;
- }
-
- return false;
+ else
+ vpid_sync_context(vpid);
}
static inline void ept_sync_global(void)
@@ -2853,8 +2853,7 @@ static void vmx_flush_tlb_gva(struct kvm_vcpu *vcpu, gva_t addr)
{
int vpid = to_vmx(vcpu)->vpid;
- if (!vpid_sync_vcpu_addr(vpid, addr))
- vpid_sync_context(vpid);
+ vpid_sync_vcpu_addr(vpid, addr);
/*
* If VPIDs are not supported or enabled, then the above is a no-op.