mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 05:48:40 +00:00
KVM: nVMX: Fix returned value of MSR_IA32_VMX_PROCBASED_CTLS
SDM says bits 1, 4-6, 8, 13-16, and 26 have to be set. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
3dcdf3ec6e
commit
560b7ee12c
2 changed files with 6 additions and 2 deletions
|
@ -51,6 +51,9 @@
|
|||
#define CPU_BASED_MONITOR_EXITING 0x20000000
|
||||
#define CPU_BASED_PAUSE_EXITING 0x40000000
|
||||
#define CPU_BASED_ACTIVATE_SECONDARY_CONTROLS 0x80000000
|
||||
|
||||
#define CPU_BASED_ALWAYSON_WITHOUT_TRUE_MSR 0x0401e172
|
||||
|
||||
/*
|
||||
* Definitions of Secondary Processor-Based VM-Execution Controls.
|
||||
*/
|
||||
|
|
|
@ -2306,7 +2306,7 @@ static __init void nested_vmx_setup_ctls_msrs(void)
|
|||
/* cpu-based controls */
|
||||
rdmsr(MSR_IA32_VMX_PROCBASED_CTLS,
|
||||
nested_vmx_procbased_ctls_low, nested_vmx_procbased_ctls_high);
|
||||
nested_vmx_procbased_ctls_low = 0;
|
||||
nested_vmx_procbased_ctls_low = CPU_BASED_ALWAYSON_WITHOUT_TRUE_MSR;
|
||||
nested_vmx_procbased_ctls_high &=
|
||||
CPU_BASED_VIRTUAL_INTR_PENDING |
|
||||
CPU_BASED_VIRTUAL_NMI_PENDING | CPU_BASED_USE_TSC_OFFSETING |
|
||||
|
@ -2327,7 +2327,8 @@ static __init void nested_vmx_setup_ctls_msrs(void)
|
|||
* can use it to avoid exits to L1 - even when L0 runs L2
|
||||
* without MSR bitmaps.
|
||||
*/
|
||||
nested_vmx_procbased_ctls_high |= CPU_BASED_USE_MSR_BITMAPS;
|
||||
nested_vmx_procbased_ctls_high |= CPU_BASED_ALWAYSON_WITHOUT_TRUE_MSR |
|
||||
CPU_BASED_USE_MSR_BITMAPS;
|
||||
|
||||
/* We support free control of CR3 access interception. */
|
||||
nested_vmx_true_procbased_ctls_low = nested_vmx_procbased_ctls_low &
|
||||
|
|
Loading…
Reference in a new issue