VirtualBox

Changeset 8101 in vbox


Ignore:
Timestamp:
Apr 17, 2008 2:23:24 PM (17 years ago)
Author:
vboxsync
Message:

Got rid of incorrect GC case for failed instruction emulation. Could cause an infinite loop.

File:
1 edited

Legend:

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

    r8090 r8101  
    154154int pgmPoolMonitorChainFlush(PPGMPOOL pPool, PPGMPOOLPAGE pPage)
    155155{
     156    LogFlow(("pgmPoolMonitorChainFlush: Flush page %VGp type=%d\n", pPage->GCPhys, pPage->enmKind));
     157
    156158    /*
    157159     * Find the list head.
     
    717719    else if (rc == VERR_EM_INTERPRETER)
    718720    {
    719 #  ifdef IN_GC
    720         if (PATMIsPatchGCAddr(pVM, (RTGCPTR)(RTGCUINTPTR)pCpu->opaddr))
    721         {
    722             /* We're not able to handle this in ring-3, so fix the interpreter! */
    723             /** @note Should be fine. There's no need to flush the whole thing. */
    724 #ifndef DEBUG_sandervl
    725             AssertMsgFailed(("pgmPoolAccessHandlerPTWorker: Interpretation failed for patch code %04x:%RGv - opcode=%d\n",
    726                              pRegFrame->cs, (RTGCPTR)pRegFrame->eip, pCpu->pCurInstr->opcode));
    727 #endif
    728             STAM_COUNTER_INC(&pPool->StatMonitorGCIntrFailPatch1);
    729             rc = pgmPoolMonitorChainFlush(pPool, pPage);
    730         }
    731         else
    732 #  endif
    733         {
    734             rc = VINF_EM_RAW_EMULATE_INSTR;
    735             STAM_COUNTER_INC(&pPool->CTXMID(StatMonitor,EmulateInstr));
    736         }
     721        LogFlow(("pgmPoolAccessHandlerPTWorker: Interpretation failed for patch code %04x:%RGv - opcode=%d\n",
     722                  pRegFrame->cs, (RTGCPTR)pRegFrame->eip, pCpu->pCurInstr->opcode));
     723        rc = VINF_EM_RAW_EMULATE_INSTR;
     724        STAM_COUNTER_INC(&pPool->CTXMID(StatMonitor,EmulateInstr));
    737725    }
    738726
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