Changeset 79149 in vbox
- Timestamp:
- Jun 14, 2019 9:51:25 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r79148 r79149 10490 10490 * @retval VINF_SUCCESS if we can proceed with running the guest, interrupts 10491 10491 * have been disabled. 10492 * @retval VINF_VMX_VMEXIT if a nested-guest VM-exit occurs (e.g., while evaluating 10493 * pending events). 10492 10494 * @retval VINF_EM_RESET if a triple-fault occurs while injecting a 10493 10495 * double-fault into the guest. … … 10620 10622 * preparing to run a nested-guest but performed a nested-guest VM-exit, we should bail. 10621 10623 */ 10622 if ( rcStrict != VINF_SUCCESS 10623 || ( pVmxTransient->fIsNestedGuest 10624 && !CPUMIsGuestInVmxNonRootMode(&pVCpu->cpum.GstCtx))) 10624 if (rcStrict != VINF_SUCCESS) 10625 10625 return rcStrict; 10626 if ( pVmxTransient->fIsNestedGuest 10627 && !CPUMIsGuestInVmxNonRootMode(&pVCpu->cpum.GstCtx)) 10628 return VINF_VMX_VMEXIT; 10629 #else 10630 Assert(rcStrict == VINF_SUCCESS); 10626 10631 #endif 10627 10632 … … 12630 12635 #endif 12631 12636 12632 if (rcStrict == VERR_EM_INTERPRETER) 12633 rcStrict = VINF_EM_RAW_EMULATE_INSTR; 12634 else if (rcStrict == VINF_EM_RESET) 12635 rcStrict = VINF_EM_TRIPLE_FAULT; 12637 int const rcLoop = VBOXSTRICTRC_VAL(rcStrict); 12638 switch (rcLoop) 12639 { 12640 case VINF_VMX_VMEXIT: rcStrict = VINF_SUCCESS; break; 12641 case VERR_EM_INTERPRETER: rcStrict = VINF_EM_RAW_EMULATE_INSTR; break; 12642 case VINF_EM_RESET: rcStrict = VINF_EM_TRIPLE_FAULT; break; 12643 } 12636 12644 12637 12645 int rc2 = hmR0VmxExitToRing3(pVCpu, rcStrict); … … 15994 16002 AssertRCReturn(rc, rc); 15995 16003 15996 uint8_t const 15997 bool const 15998 16004 uint8_t const uVector = VMX_EXIT_INT_INFO_VECTOR(uExitIntInfo); 16005 bool const fIntercept = CPUMIsGuestVmxXcptInterceptSet(pVCpu, &pVCpu->cpum.GstCtx, uVector, 16006 pVmxTransient->uExitIntErrorCode); 15999 16007 if (fIntercept) 16000 16008 {
Note:
See TracChangeset
for help on using the changeset viewer.