Changeset 20709 in vbox
- Timestamp:
- Jun 19, 2009 10:13:17 AM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 48815
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PGMPhys.cpp
r20687 r20709 1608 1608 * Since there is no particular order, just push it. 1609 1609 */ 1610 pgmLock(pVM); 1610 1611 pNew->pNextR3 = pVM->pgm.s.pMmio2RangesR3; 1611 1612 pVM->pgm.s.pMmio2RangesR3 = pNew; 1613 pgmUnlock(pVM); 1612 1614 1613 1615 *ppv = pvPages; … … 1647 1649 AssertReturn(iRegion <= UINT8_MAX || iRegion == UINT32_MAX, VERR_INVALID_PARAMETER); 1648 1650 1651 pgmLock(pVM); 1649 1652 int rc = VINF_SUCCESS; 1650 1653 unsigned cFound = 0; … … 1716 1719 } 1717 1720 } 1718 1721 pgmUnlock(pVM); 1719 1722 return !cFound && iRegion != UINT32_MAX ? VERR_NOT_FOUND : rc; 1720 1723 } … … 1962 1965 * Search the list. 1963 1966 */ 1967 pgmLock(pVM); 1964 1968 for (PPGMMMIO2RANGE pCur = pVM->pgm.s.pMmio2RangesR3; pCur; pCur = pCur->pNextR3) 1965 1969 if (pCur->RamRange.GCPhys == GCPhys) 1966 1970 { 1967 1971 Assert(pCur->fMapped); 1972 pgmUnlock(pVM); 1968 1973 return true; 1969 1974 } 1975 pgmUnlock(pVM); 1970 1976 return false; 1971 1977 } … … 1994 2000 AssertReturn(iRegion <= UINT8_MAX, VERR_INVALID_PARAMETER); 1995 2001 2002 pgmLock(pVM); 1996 2003 PPGMMMIO2RANGE pCur = pgmR3PhysMMIO2Find(pVM, pDevIns, iRegion); 1997 2004 AssertReturn(pCur, VERR_NOT_FOUND); … … 2000 2007 PCPGMPAGE pPage = &pCur->RamRange.aPages[off >> PAGE_SHIFT]; 2001 2008 *pHCPhys = PGM_PAGE_GET_HCPHYS(pPage); 2009 pgmUnlock(pVM); 2002 2010 return VINF_SUCCESS; 2003 2011 } … … 2512 2520 int pgmR3PhysRomReset(PVM pVM) 2513 2521 { 2522 Assert(PGMIsLockOwner(pVM)); 2514 2523 for (PPGMROMRANGE pRom = pVM->pgm.s.pRomRangesR3; pRom; pRom = pRom->pNextR3) 2515 2524 { … … 2727 2736 static DECLCALLBACK(int) pgmR3PhysChunkAgeingRolloverCallback(PAVLU32NODECORE pNode, void *pvUser) 2728 2737 { 2738 Assert(PGMIsLockOwner((PVM)pvUser)); 2729 2739 /* Age compression - ASSUMES iNow == 4. */ 2730 2740 PPGMCHUNKR3MAP pChunk = (PPGMCHUNKR3MAP)pNode; … … 2773 2783 VMMR3DECL(void) PGMR3PhysChunkAgeing(PVM pVM) 2774 2784 { 2785 pgmLock(pVM); 2775 2786 pVM->pgm.s.ChunkR3Map.AgeingCountdown = RT_MIN(pVM->pgm.s.ChunkR3Map.cMax / 4, 1024); 2776 2787 pVM->pgm.s.ChunkR3Map.iNow++; … … 2782 2793 else 2783 2794 RTAvlU32DoWithAll(&pVM->pgm.s.ChunkR3Map.pTree, true /*fFromLeft*/, pgmR3PhysChunkAgeingCallback, pVM); 2795 pgmUnlock(pVM); 2784 2796 } 2785 2797 … … 2849 2861 static int32_t pgmR3PhysChunkFindUnmapCandidate(PVM pVM) 2850 2862 { 2863 Assert(PGMIsLockOwner(pVM)); 2864 2851 2865 /* 2852 2866 * Do tree ageing first? … … 2883 2897 int rc; 2884 2898 2899 Assert(PGMIsLockOwner(pVM)); 2885 2900 /* 2886 2901 * Allocate a new tracking structure first. … … 2968 2983 { 2969 2984 PPGMCHUNKR3MAP pChunk; 2970 return pgmR3PhysChunkMap(pVM, idChunk, &pChunk); 2985 int rc; 2986 2987 pgmLock(pVM); 2988 rc = pgmR3PhysChunkMap(pVM, idChunk, &pChunk); 2989 pgmUnlock(pVM); 2990 return rc; 2971 2991 } 2972 2992 … … 3128 3148 * Assert sanity. 3129 3149 */ 3130 Assert(P DMCritSectIsOwner(&pVM->pgm.s.CritSect));3150 Assert(PGMIsLockOwner(pVM)); 3131 3151 if (RT_UNLIKELY( PGM_PAGE_GET_TYPE(pPage) != PGMPAGETYPE_RAM 3132 3152 && PGM_PAGE_GET_TYPE(pPage) != PGMPAGETYPE_ROM_SHADOW)) -
trunk/src/VBox/VMM/VMMAll/PGMAllHandler.cpp
r20577 r20709 272 272 pgmHandlerPhysicalResetRamFlags(pVM, pCur); 273 273 pgmHandlerPhysicalDeregisterNotifyREM(pVM, pCur); 274 MMHyperFree(pVM, pCur); 274 275 pgmUnlock(pVM); 275 276 HWACCMFlushTLBOnAllVCpus(pVM); 276 MMHyperFree(pVM, pCur);277 277 return VINF_SUCCESS; 278 278 } … … 748 748 LogFlow(("PGMHandlerPhysicalJoin: %RGp-%RGp %RGp-%RGp\n", 749 749 pCur1->Core.Key, pCur1->Core.KeyLast, pCur2->Core.Key, pCur2->Core.KeyLast)); 750 MMHyperFree(pVM, pCur2); 750 751 pgmUnlock(pVM); 751 MMHyperFree(pVM, pCur2);752 752 return VINF_SUCCESS; 753 753 }
Note:
See TracChangeset
for help on using the changeset viewer.