Changeset 29888 in vbox
- Timestamp:
- May 31, 2010 10:00:01 AM (14 years ago)
- File:
-
- 1 edited
-
trunk/src/VBox/VMM/PGMPool.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PGMPool.cpp
r29887 r29888 755 755 for (unsigned i = 0; i < RT_ELEMENTS(pPool->aIdxDirtyPages); i++) 756 756 { 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; 777 777 778 778 pPool->aIdxDirtyPages[i] = NIL_PGMPOOL_IDX;
Note:
See TracChangeset
for help on using the changeset viewer.

