VirtualBox

Changeset 24805 in vbox for trunk


Ignore:
Timestamp:
Nov 19, 2009 6:16:32 PM (15 years ago)
Author:
vboxsync
Message:

PGMAllBth.h: Make the page writable before remapping it RW in the dirty bit emulation.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/PGMAllBth.h

    r24793 r24805  
    23882388                             *       fault again and take this path to only invalidate the entry.
    23892389                             */
    2390                             if (    pPage
    2391                                 &&  PGM_PAGE_HAS_ACTIVE_HANDLERS(pPage))
     2390                            if (RT_LIKELY(pPage))
    23922391                            {
    2393                                 /* Assuming write handlers here as the PTE is present (otherwise we wouldn't be here). */
    2394                                 PteDst.n.u1Write    = 0;
     2392                                if (PGM_PAGE_HAS_ACTIVE_HANDLERS(pPage))
     2393                                    /* Assuming write handlers here as the PTE is present (otherwise we wouldn't be here). */
     2394                                    PteDst.n.u1Write = 0;
     2395                                else
     2396                                {
     2397                                    if (   PGM_PAGE_GET_STATE(pPage) == PGM_PAGE_STATE_WRITE_MONITORED
     2398                                        && PGM_PAGE_GET_TYPE(pPage)  == PGMPAGETYPE_RAM)
     2399                                    {
     2400                                        rc = pgmPhysPageMakeWritableUnlocked(pVM, pPage, pPteSrc->u & GST_PTE_PG_MASK);
     2401                                        AssertRC(rc);
     2402                                    }
     2403                                    PteDst.n.u1Write = 1;
     2404                                }
    23952405                            }
    23962406                            else
    2397                                 PteDst.n.u1Write    = 1;
     2407                                PteDst.n.u1Write     = 1;
    23982408
    23992409                            PteDst.n.u1Dirty    = 1;
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