- Timestamp:
- Mar 6, 2009 1:39:14 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAllMap.cpp
r17445 r17468 248 248 AssertFatal(pShw32BitPd); 249 249 250 if ( pShw32BitPd->a[iNewPDE].n.u1Present)251 {252 Assert(!(pShw32BitPd->a[iNewPDE].u & PGM_PDFLAGS_MAPPING));250 if ( pShw32BitPd->a[iNewPDE].n.u1Present 251 && !(pShw32BitPd->a[iNewPDE].u & PGM_PDFLAGS_MAPPING)) 252 { 253 253 pgmPoolFree(pVM, pShw32BitPd->a[iNewPDE].u & X86_PDE_PG_MASK, pVM->pgm.s.CTX_SUFF(pShwPageCR3)->idx, iNewPDE); 254 254 } … … 310 310 /* Mark the page as locked; disallow flushing. */ 311 311 pgmPoolLockPage(pVM->pgm.s.CTX_SUFF(pPool), pPoolPagePd); 312 313 if (pShwPaePd->a[iPDE].n.u1Present)314 {315 Assert(!(pShwPaePd->a[iPDE].u & PGM_PDFLAGS_MAPPING));316 pgmPoolFree(pVM, pShwPaePd->a[iPDE].u & X86_PDE_PG_MASK, pPoolPagePd->idx, iPDE);317 }318 312 } 319 313 # ifdef VBOX_STRICT 320 else 321 { 322 if (pShwPaePd->a[iPDE].u & PGM_PDFLAGS_MAPPING) 323 { 324 Assert(PGMGetGuestMode(pVM) >= PGMMODE_PAE); 325 AssertFatalMsg((pShwPaePd->a[iPDE].u & X86_PDE_PG_MASK) == pMap->aPTs[i].HCPhysPaePT0, ("%RX64 vs %RX64\n", pShwPaePd->a[iPDE+1].u & X86_PDE_PG_MASK, pMap->aPTs[i].HCPhysPaePT0)); 326 Assert(pShwPaePd->a[iPDE+1].u & PGM_PDFLAGS_MAPPING); 327 AssertFatalMsg((pShwPaePd->a[iPDE+1].u & X86_PDE_PG_MASK) == pMap->aPTs[i].HCPhysPaePT1, ("%RX64 vs %RX64\n", pShwPaePd->a[iPDE+1].u & X86_PDE_PG_MASK, pMap->aPTs[i].HCPhysPaePT1)); 328 } 314 else 315 if (pShwPaePd->a[iPDE].u & PGM_PDFLAGS_MAPPING) 316 { 317 Assert(PGMGetGuestMode(pVM) >= PGMMODE_PAE); 318 AssertFatalMsg((pShwPaePd->a[iPDE].u & X86_PDE_PG_MASK) == pMap->aPTs[i].HCPhysPaePT0, ("%RX64 vs %RX64\n", pShwPaePd->a[iPDE+1].u & X86_PDE_PG_MASK, pMap->aPTs[i].HCPhysPaePT0)); 319 Assert(pShwPaePd->a[iPDE+1].u & PGM_PDFLAGS_MAPPING); 320 AssertFatalMsg((pShwPaePd->a[iPDE+1].u & X86_PDE_PG_MASK) == pMap->aPTs[i].HCPhysPaePT1, ("%RX64 vs %RX64\n", pShwPaePd->a[iPDE+1].u & X86_PDE_PG_MASK, pMap->aPTs[i].HCPhysPaePT1)); 329 321 } 330 322 # endif 323 if ( pShwPaePd->a[iPDE].n.u1Present 324 && !(pShwPaePd->a[iPDE].u & PGM_PDFLAGS_MAPPING)) 325 { 326 Assert(!(pShwPaePd->a[iPDE].u & PGM_PDFLAGS_MAPPING)); 327 pgmPoolFree(pVM, pShwPaePd->a[iPDE].u & X86_PDE_PG_MASK, pPoolPagePd->idx, iPDE); 328 } 329 331 330 #else 332 331 if (pShwPaePd->a[iPDE].n.u1Present)
Note:
See TracChangeset
for help on using the changeset viewer.