VirtualBox

Changeset 61015 in vbox for trunk


Ignore:
Timestamp:
May 17, 2016 10:00:11 PM (8 years ago)
Author:
vboxsync
Message:

IEM,TRPMRCHandlers: Raw-mode fixes for (1) handling INT3 patches for CLI & IRET, and (2) restoring raw-mode state when returning VERR_IEM_INSTR_NOT_IMPLEMENTED/VERR_IEM_ASPECT_NOT_IMPLEMENTED since pgmPoolAccessPfHandlerFlush is doing crazy stuff. Both for fixing Solaris 10.

Location:
trunk/src/VBox/VMM
Files:
2 edited

Legend:

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

    r61014 r61015  
    1118511185{
    1118611186    if (   !pIemCpu->fInPatchCode
    11187         && rcStrict == VINF_SUCCESS)
    11188         CPUMRawEnter(pVCpu);
     11187        && (   rcStrict == VINF_SUCCESS
     11188            || rcStrict == VERR_IEM_INSTR_NOT_IMPLEMENTED  /* pgmPoolAccessPfHandlerFlush */
     11189            || rcStrict == VERR_IEM_ASPECT_NOT_IMPLEMENTED /* ditto */ ) )
     11190    {
     11191        if (pCtx->eflags.Bits.u1IF || rcStrict != VINF_SUCCESS)
     11192            CPUMRawEnter(pVCpu);
     11193        else
     11194        {
     11195            Log(("iemRCRawMaybeReenter: VINF_EM_RESCHEDULE\n"));
     11196            rcStrict = VINF_EM_RESCHEDULE;
     11197        }
     11198    }
    1118911199    return rcStrict;
    1119011200}
  • trunk/src/VBox/VMM/VMMRC/TRPMRCHandlers.cpp

    r60874 r61015  
    490490        rc = PATMRCHandleInt3PatchTrap(pVM, pRegFrame);
    491491        if (   rc == VINF_SUCCESS
     492            || rc == VINF_EM_RESCHEDULE
    492493            || rc == VINF_EM_RAW_EMULATE_INSTR
    493494            || rc == VINF_PATM_PATCH_INT3
    494             || rc == VINF_PATM_DUPLICATE_FUNCTION)
     495            || rc == VINF_PATM_DUPLICATE_FUNCTION )
    495496        {
    496497            rc = trpmGCExitTrap(pVM, pVCpu, rc, pRegFrame);
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