• Sean Christopherson's avatar
    KVM: SVM: Inject #UD on RDTSCP when it should be disabled in the guest · 3b195ac9
    Sean Christopherson authored
    Intercept RDTSCP to inject #UD if RDTSC is disabled in the guest.
    
    Note, SVM does not support intercepting RDPID.  Unlike VMX's
    ENABLE_RDTSCP control, RDTSCP interception does not apply to RDPID.  This
    is a benign virtualization hole as the host kernel (incorrectly) sets
    MSR_TSC_AUX if RDTSCP is supported, and KVM loads the guest's MSR_TSC_AUX
    into hardware if RDTSCP is supported in the host, i.e. KVM will not leak
    the host's MSR_TSC_AUX to the guest.
    
    But, when the kernel bug is fixed, KVM will start leaking the host's
    MSR_TSC_AUX if RDPID is supported in hardware, but RDTSCP isn't available
    for whatever reason.  This leak will be remedied in a future commit.
    
    Fixes: 46896c73
    
     ("KVM: svm: add support for RDTSCP")
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
    Message-Id: <20210504171734.1434054-4-seanjc@google.com>
    Reviewed-by: default avatarJim Mattson <jmattson@google.com>
    Reviewed-by: default avatarReiji Watanabe <reijiw@google.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    3b195ac9
svm.c 124 KB