]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: x86: avoid incorrect writes to host MSR_IA32_SPEC_CTRL
authorPaolo Bonzini <pbonzini@redhat.com>
Mon, 20 Jan 2020 15:33:06 +0000 (16:33 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 24 Jan 2020 08:18:47 +0000 (09:18 +0100)
commit9a4304491084dce449be70cbe58a695495d67f75
treeba8f92990dbe7ba4e59d080e066163a50a9c0ded
parentf791be48e7dc91fdc65ba49abb7b309725c9a57c
KVM: x86: avoid incorrect writes to host MSR_IA32_SPEC_CTRL

If the guest is configured to have SPEC_CTRL but the host does not
(which is a nonsensical configuration but these are not explicitly
forbidden) then a host-initiated MSR write can write vmx->spec_ctrl
(respectively svm->spec_ctrl) and trigger a #GP when KVM tries to
restore the host value of the MSR.  Add a more comprehensive check
for valid bits of SPEC_CTRL, covering host CPUID flags and,
since we are at it and it is more correct that way, guest CPUID
flags too.

For AMD, remove the unnecessary is_guest_mode check around setting
the MSR interception bitmap, so that the code looks the same as
for Intel.

Cc: Jim Mattson <jmattson@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/svm.c
arch/x86/kvm/vmx/vmx.c
arch/x86/kvm/x86.c
arch/x86/kvm/x86.h