KVM: x86: hyper-v: Honor HV_X64_REMOTE_TLB_FLUSH_RECOMMENDED bit
authorVitaly Kuznetsov <vkuznets@redhat.com>
Fri, 21 May 2021 09:51:59 +0000 (11:51 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 17 Jun 2021 17:09:44 +0000 (13:09 -0400)
Hyper-V partition must possess 'HV_X64_REMOTE_TLB_FLUSH_RECOMMENDED'
privilege ('recommended' is rather a misnomer) to issue
HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST/SPACE hypercalls.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20210521095204.2161214-26-vkuznets@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/hyperv.c

index 3d6b448ab18f6d7db7e76dfca8bb8276304cd56a..831279976d9f1a431600e44a89ff4ed4b53f54f5 100644 (file)
@@ -2112,6 +2112,12 @@ static bool hv_check_hypercall_access(struct kvm_vcpu_hv *hv_vcpu, u16 code)
                 */
                return !kvm_hv_is_syndbg_enabled(hv_vcpu->vcpu) ||
                        hv_vcpu->cpuid_cache.features_ebx & HV_DEBUGGING;
+       case HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST_EX:
+       case HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX:
+       case HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST:
+       case HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE:
+               return hv_vcpu->cpuid_cache.enlightenments_eax &
+                       HV_X64_REMOTE_TLB_FLUSH_RECOMMENDED;
        default:
                break;
        }