|
@@ -2479,8 +2479,7 @@ static void nested_vmx_setup_ctls_msrs(struct vcpu_vmx *vmx)
|
|
|
if (enable_ept) {
|
|
|
/* nested EPT: emulate EPT also to L1 */
|
|
|
vmx->nested.nested_vmx_secondary_ctls_high |=
|
|
|
- SECONDARY_EXEC_ENABLE_EPT |
|
|
|
- SECONDARY_EXEC_UNRESTRICTED_GUEST;
|
|
|
+ SECONDARY_EXEC_ENABLE_EPT;
|
|
|
vmx->nested.nested_vmx_ept_caps = VMX_EPT_PAGE_WALK_4_BIT |
|
|
|
VMX_EPTP_WB_BIT | VMX_EPT_2MB_PAGE_BIT |
|
|
|
VMX_EPT_INVEPT_BIT;
|
|
@@ -2494,6 +2493,10 @@ static void nested_vmx_setup_ctls_msrs(struct vcpu_vmx *vmx)
|
|
|
} else
|
|
|
vmx->nested.nested_vmx_ept_caps = 0;
|
|
|
|
|
|
+ if (enable_unrestricted_guest)
|
|
|
+ vmx->nested.nested_vmx_secondary_ctls_high |=
|
|
|
+ SECONDARY_EXEC_UNRESTRICTED_GUEST;
|
|
|
+
|
|
|
/* miscellaneous data */
|
|
|
rdmsr(MSR_IA32_VMX_MISC,
|
|
|
vmx->nested.nested_vmx_misc_low,
|