Skip to content
  • Joerg Roedel's avatar
    KVM: VMX: Fix x2apic check in vmx_msr_bitmap_mode() · 49e1a9d1
    Joerg Roedel authored
    The stable backport of upstream commit
    
    	904e14fb
    
     KVM: VMX: make MSR bitmaps per-VCPU
    
    has a bug in vmx_msr_bitmap_mode(). It enables the x2apic
    MSR-bitmap when the kernel emulates x2apic for the guest in
    software. The upstream version of the commit checkes whether
    the hardware has virtualization enabled for x2apic
    emulation.
    
    Since KVM emulates x2apic for guests even when the host does
    not support x2apic in hardware, this causes the intercept of
    at least the X2APIC_TASKPRI MSR to be disabled on machines
    not supporting that MSR. The result is undefined behavior,
    on some machines (Intel Westmere based) it causes a crash of
    the guest kernel when it tries to access that MSR.
    
    Change the check in vmx_msr_bitmap_mode() to match the upstream
    code. This fixes the guest crashes observed with stable
    kernels starting with v4.4.168 through v4.4.175.
    
    Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    49e1a9d1