• Sean Christopherson's avatar
    KVM: x86: Add helpers to perform CPUID-based guest vendor check · 15608ed0
    Sean Christopherson authored
    Add helpers to provide CPUID-based guest vendor checks, i.e. to do the
    ugly register comparisons.  Use the new helpers to check for an AMD
    guest vendor in guest_cpuid_is_amd() as well as in the existing emulator
    flows.
    
    Using the new helpers fixes a _very_ theoretical bug where
    guest_cpuid_is_amd() would get a false positive on a non-AMD virtual CPU
    with a vendor string beginning with "Auth" due to the previous logic
    only checking EBX.  It also fixes a marginally less theoretically bug
    where guest_cpuid_is_amd() would incorrectly return false for a guest
    CPU with "AMDisbetter!" as its vendor string.
    
    Fixes: a0c0feb5 ("KVM: x86: reserve bit 8 of non-leaf PDPEs and PML4Es in 64-bit mode on AMD")
    Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    15608ed0
kvm_emulate.h 16.9 KB