Changeset 19680 in vbox
- Timestamp:
- May 14, 2009 9:20:06 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r19675 r19680 2670 2670 int pgmPoolTrackFlushGCPhys(PVM pVM, PPGMPAGE pPhysPage, bool *pfFlushTLBs) 2671 2671 { 2672 pgmLock(pVM); 2672 2673 int rc = VINF_SUCCESS; 2673 2674 #ifdef PGMPOOL_WITH_GCPHYS_TRACKING … … 2742 2743 rc = VINF_PGM_SYNC_CR3; 2743 2744 } 2744 2745 pgmUnlock(pVM); 2745 2746 return rc; 2746 2747 } … … 3153 3154 uint16_t pgmPoolTrackPhysExtAddref(PVM pVM, uint16_t u16, uint16_t iShwPT) 3154 3155 { 3156 pgmLock(pVM); 3155 3157 if (PGMPOOL_TD_GET_CREFS(u16) != PGMPOOL_TD_CREFS_PHYSEXT) 3156 3158 { … … 3181 3183 else 3182 3184 STAM_COUNTER_INC(&pVM->pgm.s.StatTrackAliasedLots); 3185 pgmUnlock(pVM); 3183 3186 return u16; 3184 3187 } … … 3200 3203 if (iPhysExt != PGMPOOL_TD_IDX_OVERFLOWED) 3201 3204 { 3205 PVM pVM = pPool->CTX_SUFF(pVM); 3206 pgmLock(pVM); 3207 3202 3208 uint16_t iPhysExtPrev = NIL_PGMPOOL_PHYSEXT_INDEX; 3203 3209 PPGMPOOLPHYSEXT paPhysExts = pPool->CTX_SUFF(paPhysExts); … … 3219 3225 { 3220 3226 Log2(("pgmPoolTrackPhysExtDerefGCPhys: pPhysPage=%R[pgmpage] idx=%d\n", pPhysPage, pPage->idx)); 3227 pgmUnlock(pVM); 3221 3228 return; 3222 3229 } 3223 3230 3224 3231 /* we can free the node. */ 3225 PVM pVM = pPool->CTX_SUFF(pVM);3226 3232 const uint16_t iPhysExtNext = paPhysExts[iPhysExt].iNext; 3227 3233 if ( iPhysExtPrev == NIL_PGMPOOL_PHYSEXT_INDEX … … 3248 3254 } 3249 3255 iPhysExt = iPhysExtNext; 3256 pgmUnlock(pVM); 3250 3257 return; 3251 3258 } … … 3257 3264 } while (iPhysExt != NIL_PGMPOOL_PHYSEXT_INDEX); 3258 3265 3266 pgmUnlock(pVM); 3259 3267 AssertFatalMsgFailed(("not-found! cRefs=%d pPhysPage=%R[pgmpage] pPage=%p:{.idx=%d}\n", cRefs, pPhysPage, pPage, pPage->idx)); 3260 3268 }
Note:
See TracChangeset
for help on using the changeset viewer.