VirtualBox

Changeset 23597 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Oct 7, 2009 2:51:47 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
53269
Message:

Fix QNX paging loop

File:
1 edited

Legend:

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

    r23374 r23597  
    14201420     */
    14211421    rc = pgmPoolAccessHandlerFlush(pVM, pVCpu, pPool, pPage, pDis, pRegFrame, GCPhysFault, pvFault);
    1422     if (rc == VINF_EM_RAW_EMULATE_INSTR && fReused)
    1423         rc = VINF_SUCCESS;
     1422    if (    rc == VINF_EM_RAW_EMULATE_INSTR
     1423        &&  fReused)
     1424    {
     1425        /* Make sure that the current instruction still has shadow page backing, otherwise we'll end up in a loop. */
     1426        if (PGMShwGetPage(pVCpu, pRegFrame->rip, NULL, NULL) == VINF_SUCCESS)
     1427            rc = VINF_SUCCESS;  /* safe to restart the instruction. */
     1428    }
    14241429    STAM_PROFILE_STOP_EX(&pVM->pgm.s.CTX_SUFF(pPool)->CTX_SUFF_Z(StatMonitor), &pPool->CTX_MID_Z(StatMonitor,FlushPage), a);
    14251430    pgmUnlock(pVM);
Note: See TracChangeset for help on using the changeset viewer.

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