VirtualBox

Changeset 72449 in vbox for trunk/src/VBox/VMM/VMMR3


Ignore:
Timestamp:
Jun 5, 2018 10:52:38 AM (7 years ago)
Author:
vboxsync
Message:

VMM/EM: VINF_PGM_CHANGE_MODE fixes in ring-3 caused by bug addressed in r122925.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/EM.cpp

    r72440 r72449  
    17161716                             *        doesn't intercept HLT but intercepts INTR? */
    17171717                            *pfResched = true;
     1718                            Assert(rcStrict != VINF_PGM_CHANGE_MODE);
    17181719                            if (rcStrict == VINF_SVM_VMEXIT)
    17191720                                return VINF_SUCCESS;
    1720                             if (rcStrict == VINF_PGM_CHANGE_MODE)
    1721                                 return PGMChangeMode(pVCpu, pCtx->cr0, pCtx->cr4, pCtx->msrEFER);
    17221721                            return VBOXSTRICTRC_VAL(rcStrict);
    17231722                        }
     
    17301729                    /** @todo this really isn't nice, should properly handle this */
    17311730                    int rc = TRPMR3InjectEvent(pVM, pVCpu, TRPM_HARDWARE_INT);
     1731                    Assert(rc != VINF_PGM_CHANGE_MODE);
    17321732                    if (rc == VINF_SVM_VMEXIT)
    17331733                        rc = VINF_SUCCESS;
    1734                     else if (rc == VINF_PGM_CHANGE_MODE)
    1735                         rc = PGMChangeMode(pVCpu, pCtx->cr0, pCtx->cr4, pCtx->msrEFER);
    17361734                    if (pVM->em.s.fIemExecutesAll && (   rc == VINF_EM_RESCHEDULE_REM
    17371735                                                      || rc == VINF_EM_RESCHEDULE_HM
     
    17581756                         *        doesn't intercept HLT but intercepts VINTR? */
    17591757                        *pfResched = true;
     1758                        Assert(rcStrict != VINF_PGM_CHANGE_MODE);
    17601759                        if (rcStrict == VINF_SVM_VMEXIT)
    17611760                            return VINF_SUCCESS;
    1762                         if (rcStrict == VINF_PGM_CHANGE_MODE)
    1763                             return PGMChangeMode(pVCpu, pCtx->cr0, pCtx->cr4, pCtx->msrEFER);
    17641761                        return VBOXSTRICTRC_VAL(rcStrict);
    17651762                    }
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette