According to the SDM, if the "activate secondary controls" primary processor-based VM-execution control is 0, no checks are performed on the secondary processor-based VM-execution controls.
Unified · Split
| @@ -10240,9 +10240,10 @@ static int check_vmentry_prereqs(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12) · 10239 unmodified lines | ||
| 10240 | 10240 | if (!vmx_control_verify(vmcs12->cpu_based_vm_exec_control, |
| 10241 | 10241 | vmx->nested.nested_vmx_procbased_ctls_low, |
| 10242 | 10242 | vmx->nested.nested_vmx_procbased_ctls_high) || |
| 10243 | − !vmx_control_verify(vmcs12->secondary_vm_exec_control, | |
| 10244 | − vmx->nested.nested_vmx_secondary_ctls_low, | |
| 10245 | − vmx->nested.nested_vmx_secondary_ctls_high) || | |
| 10243 | + (nested_cpu_has(vmcs12, CPU_BASED_ACTIVATE_SECONDARY_CONTROLS) && | |
| 10244 | + !vmx_control_verify(vmcs12->secondary_vm_exec_control, | |
| 10245 | + vmx->nested.nested_vmx_secondary_ctls_low, | |
| 10246 | + vmx->nested.nested_vmx_secondary_ctls_high)) || | |
| 10246 | 10247 | !vmx_control_verify(vmcs12->pin_based_vm_exec_control, |
| 10247 | 10248 | vmx->nested.nested_vmx_pinbased_ctls_low, |
| 10248 | 10249 | vmx->nested.nested_vmx_pinbased_ctls_high) || |