static int vmx_hv_remote_flush_tlb(struct kvm *kvm)
 {
-       int ret;
+       struct kvm_vcpu *vcpu;
+       int ret = -ENOTSUPP, i;
 
        spin_lock(&to_kvm_vmx(kvm)->ept_pointer_lock);
 
                check_ept_pointer_match(kvm);
 
        if (to_kvm_vmx(kvm)->ept_pointers_match != EPT_POINTERS_MATCH) {
-               ret = -ENOTSUPP;
-               goto out;
+               kvm_for_each_vcpu(i, vcpu, kvm)
+                       ret |= hyperv_flush_guest_mapping(
+                               to_vmx(kvm_get_vcpu(kvm, i))->ept_pointer);
+       } else {
+               ret = hyperv_flush_guest_mapping(
+                               to_vmx(kvm_get_vcpu(kvm, 0))->ept_pointer);
        }
 
-       ret = hyperv_flush_guest_mapping(
-                       to_vmx(kvm_get_vcpu(kvm, 0))->ept_pointer);
-
-out:
        spin_unlock(&to_kvm_vmx(kvm)->ept_pointer_lock);
        return ret;
 }