KVM: nVMX: Don't stuff secondary execution control if it's not supported
authorSean Christopherson <seanjc@google.com>
Tue, 13 Dec 2022 06:23:04 +0000 (06:23 +0000)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 23 Dec 2022 17:32:03 +0000 (12:32 -0500)
commita0860d68a25dee4e51e7d3e067a66ca765776fe8
tree765cabf8654e150df3129fc7ccbbb623a5cf2732
parent31de69f4eea77b28a9724b3fa55aae104fc91fc7
KVM: nVMX: Don't stuff secondary execution control if it's not supported

When stuffing the allowed secondary execution controls for nested VMX in
response to CPUID updates, don't set the allowed-1 bit for a feature that
isn't supported by KVM, i.e. isn't allowed by the canonical vmcs_config.

WARN if KVM attempts to manipulate a feature that isn't supported.  All
features that are currently stuffed are always advertised to L1 for
nested VMX if they are supported in KVM's base configuration, and no
additional features should ever be added to the CPUID-induced stuffing
(updating VMX MSRs in response to CPUID updates is a long-standing KVM
flaw that is slowly being fixed).

Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20221213062306.667649-3-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/vmx/vmx.c