- Timestamp:
- May 8, 2015 2:28:36 PM (10 years ago)
- svn:sync-xref-src-repo-rev:
- 100178
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r55555 r55756 781 781 782 782 /* Enter VMX root mode. */ 783 int rc = VMXEnable(HCPhysCpuPage); 784 if ( RT_FAILURE(rc) 785 && !(uOldCr4 & X86_CR4_VMXE)) 786 SUPR0ChangeCR4(0, ~X86_CR4_VMXE); 783 int rc = VMXEnable(HCPhysCpuPage+5); 784 if (RT_FAILURE(rc)) 785 { 786 if (!(uOldCr4 & X86_CR4_VMXE)) 787 SUPR0ChangeCR4(0, ~X86_CR4_VMXE); 788 789 if (pVM) 790 pVM->hm.s.vmx.HCPhysVmxEnableError = HCPhysCpuPage+5; 791 } 787 792 788 793 /* Restore interrupts. */ … … 5285 5290 SUPR0ChangeCR4(0, ~X86_CR4_VMXE); 5286 5291 ASMSetFlags(uOldEflags); 5292 pVM->hm.s.vmx.HCPhysVmxEnableError = HCPhysCpuPage; 5287 5293 return rc2; 5288 5294 } -
trunk/src/VBox/VMM/VMMR3/HM.cpp
r55257 r55756 974 974 if (RT_FAILURE(rc)) 975 975 { 976 LogRel(("HM: HMR3InitFinalize: SUPR3CallVMMR0Ex VMMR0_DO_HM_ENABLE failed with %Rrc\n", rc)); 976 LogRel(("HM: Failed to enable, error %Rrc\n", rc)); 977 HMR3CheckError(pVM, rc); 977 978 return rc; 978 979 } … … 1299 1300 LogRel(("HM: CPU[%u] HM error %#x (%u)\n", i, pVCpu->hm.s.u32HMError, pVCpu->hm.s.u32HMError)); 1300 1301 } 1302 HMR3CheckError(pVM, rc); 1301 1303 return VMSetError(pVM, rc, RT_SRC_POS, "VT-x setup failed: %Rrc", rc); 1302 1304 } … … 3002 3004 LogRel(("HM: VERR_VMX_UNABLE_TO_START_VM: VM-entry disallowed %#RX32\n", pVM->hm.s.vmx.Msrs.VmxEntry.n.disallowed0)); 3003 3005 } 3006 else if (iStatusCode == VERR_VMX_INVALID_VMXON_PTR) 3007 LogRel(("HM: HCPhysVmxEnableError = %#RHp\n", pVM->hm.s.vmx.HCPhysVmxEnableError)); 3004 3008 } 3005 3009 -
trunk/src/VBox/VMM/include/HMInternal.h
r55295 r55756 426 426 VMXFLUSHEPT enmFlushEpt; 427 427 VMXFLUSHVPID enmFlushVpid; 428 429 /** Host-physical address for a failing VMXON instruction. */ 430 RTHCPHYS HCPhysVmxEnableError; 428 431 } vmx; 429 432
Note:
See TracChangeset
for help on using the changeset viewer.