VirtualBox

Changeset 17231 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Mar 2, 2009 10:27:39 AM (16 years ago)
Author:
vboxsync
Message:

pgmPoolFlushAllInt: Unmap the old CR3 value before flushing everything (VBOX_WITH_PGMPOOL_PAGING_ONLY)

File:
1 edited

Legend:

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

    r17203 r17231  
    41184118static void pgmPoolFlushAllInt(PPGMPOOL pPool)
    41194119{
     4120    PVM pVM = pPool->CTX_SUFF(pVM);
     4121
    41204122    STAM_PROFILE_START(&pPool->StatFlushAllInt, a);
    41214123    LogFlow(("pgmPoolFlushAllInt:\n"));
     
    41304132    }
    41314133
     4134#ifdef VBOX_WITH_PGMPOOL_PAGING_ONLY
     4135    /* Unmap the old CR3 value before flushing everything. */
     4136    int rc = PGM_BTH_PFN(UnmapCR3, pVM)(pVM);
     4137    AssertRC(rc);
     4138#endif
     4139
    41324140    /*
    41334141     * Nuke the free list and reinsert all pages into it.
     
    41384146
    41394147#ifdef IN_RING3
    4140         Assert(pPage->Core.Key == MMPage2Phys(pPool->pVMR3, pPage->pvPageR3));
     4148        Assert(pPage->Core.Key == MMPage2Phys(pVM, pPage->pvPageR3));
    41414149#endif
    41424150#ifdef PGMPOOL_WITH_MONITORING
     
    41934201     * Clear all the GCPhys links and rebuild the phys ext free list.
    41944202     */
    4195     for (PPGMRAMRANGE pRam = pPool->CTX_SUFF(pVM)->pgm.s.CTX_SUFF(pRamRanges);
     4203    for (PPGMRAMRANGE pRam = pVM->pgm.s.CTX_SUFF(pRamRanges);
    41964204         pRam;
    41974205         pRam = pRam->CTX_SUFF(pNext))
     
    42514259        if (pPage->fMonitored)
    42524260        {
    4253             PVM pVM = pPool->CTX_SUFF(pVM);
    42544261            int rc = PGMHandlerPhysicalChangeCallbacks(pVM, pPage->GCPhys & ~(RTGCPHYS)(PAGE_SIZE - 1),
    42554262                                                       pPool->pfnAccessHandlerR3, MMHyperCCToR3(pVM, pPage),
     
    42754282     * Finally, assert the FF.
    42764283     */
    4277     VM_FF_SET(pPool->CTX_SUFF(pVM), VM_FF_PGM_SYNC_CR3);
     4284    VM_FF_SET(pVM, VM_FF_PGM_SYNC_CR3);
    42784285
    42794286    STAM_PROFILE_STOP(&pPool->StatFlushAllInt, a);
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