Changeset 72440 in vbox for trunk/src/VBox/VMM/VMMR3
- Timestamp:
- Jun 5, 2018 5:45:11 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/EM.cpp
r72327 r72440 1716 1716 * doesn't intercept HLT but intercepts INTR? */ 1717 1717 *pfResched = true; 1718 return VINF_EM_RESCHEDULE; 1718 if (rcStrict == VINF_SVM_VMEXIT) 1719 return VINF_SUCCESS; 1720 if (rcStrict == VINF_PGM_CHANGE_MODE) 1721 return PGMChangeMode(pVCpu, pCtx->cr0, pCtx->cr4, pCtx->msrEFER); 1722 return VBOXSTRICTRC_VAL(rcStrict); 1719 1723 } 1720 1724 … … 1726 1730 /** @todo this really isn't nice, should properly handle this */ 1727 1731 int rc = TRPMR3InjectEvent(pVM, pVCpu, TRPM_HARDWARE_INT); 1732 if (rc == VINF_SVM_VMEXIT) 1733 rc = VINF_SUCCESS; 1734 else if (rc == VINF_PGM_CHANGE_MODE) 1735 rc = PGMChangeMode(pVCpu, pCtx->cr0, pCtx->cr4, pCtx->msrEFER); 1728 1736 if (pVM->em.s.fIemExecutesAll && ( rc == VINF_EM_RESCHEDULE_REM 1729 1737 || rc == VINF_EM_RESCHEDULE_HM … … 1750 1758 * doesn't intercept HLT but intercepts VINTR? */ 1751 1759 *pfResched = true; 1752 return VINF_EM_RESCHEDULE; 1760 if (rcStrict == VINF_SVM_VMEXIT) 1761 return VINF_SUCCESS; 1762 if (rcStrict == VINF_PGM_CHANGE_MODE) 1763 return PGMChangeMode(pVCpu, pCtx->cr0, pCtx->cr4, pCtx->msrEFER); 1764 return VBOXSTRICTRC_VAL(rcStrict); 1753 1765 } 1754 1766 … … 2129 2141 /** @todo this really isn't nice, should properly handle this */ 2130 2142 rc2 = TRPMR3InjectEvent(pVM, pVCpu, TRPM_HARDWARE_INT); 2131 Log(("EM: TRPMR3InjectEvent -> %d\n", rc2));2143 Log(("EM: TRPMR3InjectEvent -> %d\n", rc2)); 2132 2144 if (pVM->em.s.fIemExecutesAll && ( rc2 == VINF_EM_RESCHEDULE_REM 2133 2145 || rc2 == VINF_EM_RESCHEDULE_HM
Note:
See TracChangeset
for help on using the changeset viewer.