VirtualBox

Changeset 60879 in vbox for trunk


Ignore:
Timestamp:
May 8, 2016 11:03:39 AM (9 years ago)
Author:
vboxsync
Message:

PATMRawLeave: It's okay to end up in ring-3 with a reschduling status code and interrupts disabled, it probably means that IEM as dispatched an exception.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/PATMAll.cpp

    r58126 r60879  
    167167    CTXSUFF(pVM->patm.s.pGCState)->uVMFlags = X86_EFL_IF;
    168168
    169     AssertReleaseMsg((efl & X86_EFL_IF) || fPatchCode || rawRC == VINF_PATM_PENDING_IRQ_AFTER_IRET || RT_FAILURE(rawRC), ("Inconsistent state at %RRv rc=%Rrc\n", pCtx->eip, rawRC));
     169#ifdef IN_RING3
     170    AssertReleaseMsg((efl & X86_EFL_IF) || fPatchCode || rawRC == VINF_PATM_PENDING_IRQ_AFTER_IRET
     171                     || rawRC == VINF_EM_RESCHEDULE || rawRC == VINF_EM_RESCHEDULE_REM || RT_FAILURE(rawRC),
     172                     ("Inconsistent state at %RRv rc=%Rrc\n", pCtx->eip, rawRC));
    170173    AssertReleaseMsg(CTXSUFF(pVM->patm.s.pGCState)->fPIF || fPatchCode || RT_FAILURE(rawRC), ("fPIF=%d eip=%RRv rc=%Rrc\n", CTXSUFF(pVM->patm.s.pGCState)->fPIF, pCtx->eip, rawRC));
    171 
    172 #ifdef IN_RING3
    173174    if (   (efl & X86_EFL_IF)
    174175        && fPatchCode)
     
    222223     */
    223224    AssertMsg(!fPatchCode, ("eip=%RRv\n", pCtx->eip));
     225    AssertReleaseMsg((efl & X86_EFL_IF) || fPatchCode || rawRC == VINF_PATM_PENDING_IRQ_AFTER_IRET || RT_FAILURE(rawRC), ("Inconsistent state at %RRv rc=%Rrc\n", pCtx->eip, rawRC));
     226    AssertReleaseMsg(CTXSUFF(pVM->patm.s.pGCState)->fPIF || fPatchCode || RT_FAILURE(rawRC), ("fPIF=%d eip=%RRv rc=%Rrc\n", CTXSUFF(pVM->patm.s.pGCState)->fPIF, pCtx->eip, rawRC));
    224227#endif /* !IN_RING3 */
    225228
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