VirtualBox

Changeset 80 in vbox for trunk/src/VBox/VMM/PGMPhys.cpp


Ignore:
Timestamp:
Jan 17, 2007 8:45:10 AM (18 years ago)
Author:
vboxsync
Message:

PGMR3PhysGrowRange: a request made from another thread may end up in EMT after somebody else has already allocated the range

File:
1 edited

Legend:

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

    r29 r80  
    304304     */
    305305    pgmLock(pVM);
     306
    306307    PPGMRAMRANGE pRam = CTXSUFF(pVM->pgm.s.pRamRanges);
    307308    while (pRam)
     
    311312            &&  (pRam->fFlags & MM_RAM_FLAGS_DYNAMIC_ALLOC))
    312313        {
     314            bool     fRangeExists = false;
     315            unsigned off = (GCPhys - pRam->GCPhys) >> PGM_DYNAMIC_CHUNK_SHIFT;
     316
     317            /** @note A request made from another thread may end up in EMT after somebody else has already allocated the range. */
     318            if (pRam->pavHCChunkHC[off])
     319                fRangeExists = true;
     320
    313321            pgmUnlock(pVM);
     322            if (fRangeExists)
     323                return VINF_SUCCESS;
    314324            return pgmr3PhysGrowRange(pVM, GCPhys);
    315325        }
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