VirtualBox

Changeset 19690 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
May 14, 2009 11:49:00 AM (16 years ago)
Author:
vboxsync
Message:

More pgm pool locking.

Location:
trunk/src/VBox/VMM/VMMAll
Files:
2 edited

Legend:

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

    r19628 r19690  
    315315                AssertFatal(pPoolPagePd);
    316316                if (!pgmPoolIsPageLocked(&pVM->pgm.s, pPoolPagePd))
    317                     pgmPoolLockPage(pVM->pgm.s.CTX_SUFF(pPool), pPoolPagePd);
     317                    pgmPoolLockPage(pPool, pPoolPagePd);
    318318#ifdef VBOX_STRICT
    319319                else if (pShwPaePd->a[iPaePde].u & PGM_PDFLAGS_MAPPING)
     
    493493                    AssertFatal(pPoolPagePd);
    494494                    if (pgmPoolIsPageLocked(&pVM->pgm.s, pPoolPagePd))
    495                         pgmPoolUnlockPage(pVM->pgm.s.CTX_SUFF(pPool), pPoolPagePd);
     495                        pgmPoolUnlockPage(pPool, pPoolPagePd);
    496496                }
    497497                break;
  • trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp

    r19680 r19690  
    43454345}
    43464346
     4347/**
     4348 * Internal worker for finding a 'in-use' shadow page give by it's physical address.
     4349 *
     4350 * @returns Pointer to the shadow page structure.
     4351 * @param   pPool       The pool.
     4352 * @param   HCPhys      The HC physical address of the shadow page.
     4353 */
     4354PPGMPOOLPAGE pgmPoolGetPage(PPGMPOOL pPool, RTHCPHYS HCPhys)
     4355{
     4356    PVM pVM = pPool->CTX_SUFF(pVM);
     4357
     4358    /*
     4359     * Look up the page.
     4360     */
     4361    pgmLock(pVM);
     4362    PPGMPOOLPAGE pPage = (PPGMPOOLPAGE)RTAvloHCPhysGet(&pPool->HCPhysTree, HCPhys & X86_PTE_PAE_PG_MASK);
     4363    pgmUnlock(pVM);
     4364
     4365    AssertFatalMsg(pPage && pPage->enmKind != PGMPOOLKIND_FREE, ("HCPhys=%RHp pPage=%p idx=%d\n", HCPhys, pPage, (pPage) ? pPage->idx : 0));
     4366    return pPage;
     4367}
     4368
    43474369
    43484370#ifdef IN_RING3
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