kvm: nVMX: Relax guest IA32_FEATURE_CONTROL constraints
authorJim Mattson <jmattson@google.com>
Fri, 22 Nov 2019 23:43:55 +0000 (15:43 -0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Sat, 23 Nov 2019 10:34:46 +0000 (11:34 +0100)
commit85c9aae9ac8b228f2134b56d4fc743afc446947a
tree5e0cece28dead2c9c85e77da2c24db92d1e60870
parentad5996d9a0e8019c3ae5151e687939369acfe044
kvm: nVMX: Relax guest IA32_FEATURE_CONTROL constraints

Commit 37e4c997dadf ("KVM: VMX: validate individual bits of guest
MSR_IA32_FEATURE_CONTROL") broke the KVM_SET_MSRS ABI by instituting
new constraints on the data values that kvm would accept for the guest
MSR, IA32_FEATURE_CONTROL. Perhaps these constraints should have been
opt-in via a new KVM capability, but they were applied
indiscriminately, breaking at least one existing hypervisor.

Relax the constraints to allow either or both of
FEATURE_CONTROL_VMXON_ENABLED_OUTSIDE_SMX and
FEATURE_CONTROL_VMXON_ENABLED_INSIDE_SMX to be set when nVMX is
enabled. This change is sufficient to fix the aforementioned breakage.

Fixes: 37e4c997dadf ("KVM: VMX: validate individual bits of guest MSR_IA32_FEATURE_CONTROL")
Signed-off-by: Jim Mattson <jmattson@google.com>
Reviewed-by: Liran Alon <liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/vmx/vmx.c