forked from Minki/linux
KVM: VMX: Add missing CPU based VM execution controls to vmcs_config
As a preparation to reusing the result of setup_vmcs_config() in nested VMX MSR setup, add the CPU based VM execution controls which KVM doesn't use but supports for nVMX to KVM_OPT_VMX_CPU_BASED_VM_EXEC_CONTROL and filter them out in vmx_exec_control(). No functional change intended. Reviewed-by: Jim Mattson <jmattson@google.com> Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> Signed-off-by: Sean Christopherson <seanjc@google.com> Link: https://lore.kernel.org/r/20220830133737.1539624-27-vkuznets@redhat.com Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
f16e47429e
commit
a83bea73fa
@ -4326,6 +4326,15 @@ static u32 vmx_exec_control(struct vcpu_vmx *vmx)
|
||||
{
|
||||
u32 exec_control = vmcs_config.cpu_based_exec_ctrl;
|
||||
|
||||
/*
|
||||
* Not used by KVM, but fully supported for nesting, i.e. are allowed in
|
||||
* vmcs12 and propagated to vmcs02 when set in vmcs12.
|
||||
*/
|
||||
exec_control &= ~(CPU_BASED_RDTSC_EXITING |
|
||||
CPU_BASED_USE_IO_BITMAPS |
|
||||
CPU_BASED_MONITOR_TRAP_FLAG |
|
||||
CPU_BASED_PAUSE_EXITING);
|
||||
|
||||
/* INTR_WINDOW_EXITING and NMI_WINDOW_EXITING are toggled dynamically */
|
||||
exec_control &= ~(CPU_BASED_INTR_WINDOW_EXITING |
|
||||
CPU_BASED_NMI_WINDOW_EXITING);
|
||||
|
@ -549,9 +549,13 @@ static inline u8 vmx_get_rvi(void)
|
||||
#endif
|
||||
|
||||
#define KVM_OPTIONAL_VMX_CPU_BASED_VM_EXEC_CONTROL \
|
||||
(CPU_BASED_TPR_SHADOW | \
|
||||
(CPU_BASED_RDTSC_EXITING | \
|
||||
CPU_BASED_TPR_SHADOW | \
|
||||
CPU_BASED_USE_IO_BITMAPS | \
|
||||
CPU_BASED_MONITOR_TRAP_FLAG | \
|
||||
CPU_BASED_USE_MSR_BITMAPS | \
|
||||
CPU_BASED_NMI_WINDOW_EXITING | \
|
||||
CPU_BASED_PAUSE_EXITING | \
|
||||
CPU_BASED_ACTIVATE_SECONDARY_CONTROLS | \
|
||||
CPU_BASED_ACTIVATE_TERTIARY_CONTROLS)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user