Changeset 76198 in vbox for trunk/src/VBox/VMM/VMMR0
- Timestamp:
- Dec 13, 2018 7:17:44 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r76136 r76198 2288 2288 { 2289 2289 PVM pVM = pVCpu->CTX_SUFF(pVM); 2290 uint32_t fVal = pVM->hm.s.vmx.Msrs.PinCtls.n. disallowed0;/* Bits set here must always be set. */2290 uint32_t fVal = pVM->hm.s.vmx.Msrs.PinCtls.n.allowed0; /* Bits set here must always be set. */ 2291 2291 uint32_t const fZap = pVM->hm.s.vmx.Msrs.PinCtls.n.allowed1; /* Bits cleared here must always be cleared. */ 2292 2292 … … 2317 2317 { 2318 2318 LogRelFunc(("Invalid pin-based VM-execution controls combo! Cpu=%#RX32 fVal=%#RX32 fZap=%#RX32\n", 2319 pVM->hm.s.vmx.Msrs.PinCtls.n. disallowed0, fVal, fZap));2319 pVM->hm.s.vmx.Msrs.PinCtls.n.allowed0, fVal, fZap)); 2320 2320 pVCpu->hm.s.u32HMError = VMX_UFC_CTRL_PIN_EXEC; 2321 2321 return VERR_HM_UNSUPPORTED_CPU_FEATURE_COMBO; … … 2343 2343 { 2344 2344 PVM pVM = pVCpu->CTX_SUFF(pVM); 2345 uint32_t fVal = pVM->hm.s.vmx.Msrs.ProcCtls2.n. disallowed0;/* Bits set here must be set in the VMCS. */2345 uint32_t fVal = pVM->hm.s.vmx.Msrs.ProcCtls2.n.allowed0; /* Bits set here must be set in the VMCS. */ 2346 2346 uint32_t const fZap = pVM->hm.s.vmx.Msrs.ProcCtls2.n.allowed1; /* Bits cleared here must be cleared in the VMCS. */ 2347 2347 … … 2414 2414 { 2415 2415 LogRelFunc(("Invalid secondary processor-based VM-execution controls combo! cpu=%#RX32 fVal=%#RX32 fZap=%#RX32\n", 2416 pVM->hm.s.vmx.Msrs.ProcCtls2.n. disallowed0, fVal, fZap));2416 pVM->hm.s.vmx.Msrs.ProcCtls2.n.allowed0, fVal, fZap)); 2417 2417 pVCpu->hm.s.u32HMError = VMX_UFC_CTRL_PROC_EXEC2; 2418 2418 return VERR_HM_UNSUPPORTED_CPU_FEATURE_COMBO; … … 2440 2440 { 2441 2441 PVM pVM = pVCpu->CTX_SUFF(pVM); 2442 uint32_t fVal = pVM->hm.s.vmx.Msrs.ProcCtls.n. disallowed0;/* Bits set here must be set in the VMCS. */2442 uint32_t fVal = pVM->hm.s.vmx.Msrs.ProcCtls.n.allowed0; /* Bits set here must be set in the VMCS. */ 2443 2443 uint32_t const fZap = pVM->hm.s.vmx.Msrs.ProcCtls.n.allowed1; /* Bits cleared here must be cleared in the VMCS. */ 2444 2444 … … 2453 2453 /* We toggle VMX_PROC_CTLS_MOV_DR_EXIT later, check if it's not -always- needed to be set or clear. */ 2454 2454 if ( !(pVM->hm.s.vmx.Msrs.ProcCtls.n.allowed1 & VMX_PROC_CTLS_MOV_DR_EXIT) 2455 || (pVM->hm.s.vmx.Msrs.ProcCtls.n. disallowed0 & VMX_PROC_CTLS_MOV_DR_EXIT))2455 || (pVM->hm.s.vmx.Msrs.ProcCtls.n.allowed0 & VMX_PROC_CTLS_MOV_DR_EXIT)) 2456 2456 { 2457 2457 LogRelFunc(("Unsupported VMX_PROC_CTLS_MOV_DR_EXIT combo!")); … … 2545 2545 { 2546 2546 LogRelFunc(("Invalid processor-based VM-execution controls combo! cpu=%#RX32 fVal=%#RX32 fZap=%#RX32\n", 2547 pVM->hm.s.vmx.Msrs.ProcCtls.n. disallowed0, fVal, fZap));2547 pVM->hm.s.vmx.Msrs.ProcCtls.n.allowed0, fVal, fZap)); 2548 2548 pVCpu->hm.s.u32HMError = VMX_UFC_CTRL_PROC_EXEC; 2549 2549 return VERR_HM_UNSUPPORTED_CPU_FEATURE_COMBO; … … 3227 3227 { 3228 3228 PVM pVM = pVCpu->CTX_SUFF(pVM); 3229 uint32_t fVal = pVM->hm.s.vmx.Msrs.EntryCtls.n. disallowed0;/* Bits set here must be set in the VMCS. */3229 uint32_t fVal = pVM->hm.s.vmx.Msrs.EntryCtls.n.allowed0; /* Bits set here must be set in the VMCS. */ 3230 3230 uint32_t const fZap = pVM->hm.s.vmx.Msrs.EntryCtls.n.allowed1; /* Bits cleared here must be cleared in the VMCS. */ 3231 3231 … … 3261 3261 if ((fVal & fZap) != fVal) 3262 3262 { 3263 Log4Func(("Invalid VM-entry controls combo! Cpu=% RX32 fVal=%RX32 fZap=%RX32\n",3264 pVM->hm.s.vmx.Msrs.EntryCtls.n. disallowed0, fVal, fZap));3263 Log4Func(("Invalid VM-entry controls combo! Cpu=%#RX32 fVal=%#RX32 fZap=%#RX32\n", 3264 pVM->hm.s.vmx.Msrs.EntryCtls.n.allowed0, fVal, fZap)); 3265 3265 pVCpu->hm.s.u32HMError = VMX_UFC_CTRL_ENTRY; 3266 3266 return VERR_HM_UNSUPPORTED_CPU_FEATURE_COMBO; … … 3294 3294 { 3295 3295 PVM pVM = pVCpu->CTX_SUFF(pVM); 3296 uint32_t fVal = pVM->hm.s.vmx.Msrs.ExitCtls.n. disallowed0;/* Bits set here must be set in the VMCS. */3296 uint32_t fVal = pVM->hm.s.vmx.Msrs.ExitCtls.n.allowed0; /* Bits set here must be set in the VMCS. */ 3297 3297 uint32_t const fZap = pVM->hm.s.vmx.Msrs.ExitCtls.n.allowed1; /* Bits cleared here must be cleared in the VMCS. */ 3298 3298 … … 3345 3345 if ((fVal & fZap) != fVal) 3346 3346 { 3347 LogRelFunc(("Invalid VM-exit controls combo! cpu=% RX32 fVal=%RX32 fZap=%RX32\n",3348 pVM->hm.s.vmx.Msrs.ExitCtls.n. disallowed0, fVal, fZap));3347 LogRelFunc(("Invalid VM-exit controls combo! cpu=%#RX32 fVal=%#RX32 fZap=%R#X32\n", 3348 pVM->hm.s.vmx.Msrs.ExitCtls.n.allowed0, fVal, fZap)); 3349 3349 pVCpu->hm.s.u32HMError = VMX_UFC_CTRL_EXIT; 3350 3350 return VERR_HM_UNSUPPORTED_CPU_FEATURE_COMBO; … … 9435 9435 pDbgState->fCpe1Extra |= VMX_PROC_CTLS_USE_SECONDARY_CTLS; 9436 9436 pDbgState->fCpe1Extra &= pVM->hm.s.vmx.Msrs.ProcCtls.n.allowed1; 9437 pDbgState->fCpe1Unwanted &= ~pVM->hm.s.vmx.Msrs.ProcCtls.n. disallowed0;9437 pDbgState->fCpe1Unwanted &= ~pVM->hm.s.vmx.Msrs.ProcCtls.n.allowed0; 9438 9438 if (pVCpu->hm.s.fDebugWantRdTscExit != RT_BOOL(pDbgState->fCpe1Extra & VMX_PROC_CTLS_RDTSC_EXIT)) 9439 9439 {
Note:
See TracChangeset
for help on using the changeset viewer.