VirtualBox

Changeset 29888 in vbox for trunk/src


Ignore:
Timestamp:
May 31, 2010 10:00:01 AM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
62151
Message:

Tabs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/PGMPool.cpp

    r29887 r29888  
    755755    for (unsigned i = 0; i < RT_ELEMENTS(pPool->aIdxDirtyPages); i++)
    756756        {
    757                 PPGMPOOLPAGE pPage;
    758             unsigned     idxPage;
    759 
    760             if (pPool->aIdxDirtyPages[i] == NIL_PGMPOOL_IDX)
    761                         continue;
    762 
    763             idxPage = pPool->aIdxDirtyPages[i];
    764                 AssertRelease(idxPage != NIL_PGMPOOL_IDX);
    765                 pPage = &pPool->aPages[idxPage];
    766                 Assert(pPage->idx == idxPage);
    767                 Assert(pPage->iMonitoredNext == NIL_PGMPOOL_IDX && pPage->iMonitoredPrev == NIL_PGMPOOL_IDX);
    768 
    769             AssertMsg(pPage->fDirty, ("Page %RGp (slot=%d) not marked dirty!", pPage->GCPhys, i));
    770 
    771                 Log(("Reactivate dirty page %RGp\n", pPage->GCPhys));
    772 
    773                 /* First write protect the page again to catch all write accesses. (before checking for changes -> SMP) */
    774             int rc = PGMHandlerPhysicalReset(pVM, pPage->GCPhys);
    775                 Assert(rc == VINF_SUCCESS);
    776                 pPage->fDirty = false;
     757        PPGMPOOLPAGE pPage;
     758        unsigned     idxPage;
     759
     760        if (pPool->aIdxDirtyPages[i] == NIL_PGMPOOL_IDX)
     761            continue;
     762
     763        idxPage = pPool->aIdxDirtyPages[i];
     764        AssertRelease(idxPage != NIL_PGMPOOL_IDX);
     765        pPage = &pPool->aPages[idxPage];
     766        Assert(pPage->idx == idxPage);
     767        Assert(pPage->iMonitoredNext == NIL_PGMPOOL_IDX && pPage->iMonitoredPrev == NIL_PGMPOOL_IDX);
     768
     769        AssertMsg(pPage->fDirty, ("Page %RGp (slot=%d) not marked dirty!", pPage->GCPhys, i));
     770
     771        Log(("Reactivate dirty page %RGp\n", pPage->GCPhys));
     772
     773        /* First write protect the page again to catch all write accesses. (before checking for changes -> SMP) */
     774        int rc = PGMHandlerPhysicalReset(pVM, pPage->GCPhys);
     775        Assert(rc == VINF_SUCCESS);
     776        pPage->fDirty = false;
    777777
    778778        pPool->aIdxDirtyPages[i] = NIL_PGMPOOL_IDX;
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