Changeset 31998 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Aug 26, 2010 2:00:51 PM (14 years ago)
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAll.cpp
r31997 r31998 1074 1074 /* Allocate page directory pointer table if not present. */ 1075 1075 if ( !pPml4e->n.u1Present 1076 && !(pPml4e->u & X86_PML4E_PG_MASK ))1076 && !(pPml4e->u & X86_PML4E_PG_MASK_FULL)) 1077 1077 { 1078 1078 RTGCPTR64 GCPml4; … … 1099 1099 else 1100 1100 { 1101 pShwPage = pgmPoolGetPage(pPool, pPml4e->u & X86_PML4E_PG_MASK );1101 pShwPage = pgmPoolGetPage(pPool, pPml4e->u & X86_PML4E_PG_MASK_FULL); 1102 1102 AssertReturn(pShwPage, VERR_INTERNAL_ERROR); 1103 1103 … … 1177 1177 PVM pVM = pVCpu->CTX_SUFF(pVM); 1178 1178 PPGMPOOL pPool = pVM->pgm.s.CTX_SUFF(pPool); 1179 PPGMPOOLPAGE pShwPage = pgmPoolGetPage(pPool, pPml4e->u & X86_PML4E_PG_MASK );1179 PPGMPOOLPAGE pShwPage = pgmPoolGetPage(pPool, pPml4e->u & X86_PML4E_PG_MASK_FULL); 1180 1180 AssertReturn(pShwPage, VERR_INTERNAL_ERROR); 1181 1181 -
trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r31996 r31998 3669 3669 } 3670 3670 3671 pShwPdpt = pgmPoolGetPage(pPool, pPml4eDst->u & X86_PML4E_PG_MASK );3671 pShwPdpt = pgmPoolGetPage(pPool, pPml4eDst->u & X86_PML4E_PG_MASK_FULL); 3672 3672 GCPhysPdptSrc = pPml4eSrc->u & X86_PML4E_PG_MASK_FULL; 3673 3673 -
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r31996 r31998 662 662 { 663 663 LogFlow(("pgmPoolMonitorChainChanging: pml4 iShw=%#x: %RX64 -> freeing it!\n", iShw, uShw.pPML4->a[iShw].u)); 664 pgmPoolFree(pVM, uShw.pPML4->a[iShw].u & X86_PML4E_PG_MASK , pPage->idx, iShw);664 pgmPoolFree(pVM, uShw.pPML4->a[iShw].u & X86_PML4E_PG_MASK_FULL, pPage->idx, iShw); 665 665 ASMAtomicWriteSize(&uShw.pPML4->a[iShw].u, 0); 666 666 } … … 673 673 { 674 674 LogFlow(("pgmPoolMonitorChainChanging: pml4 iShw2=%#x: %RX64 -> freeing it!\n", iShw2, uShw.pPML4->a[iShw2].u)); 675 pgmPoolFree(pVM, uShw.pPML4->a[iShw2].u & X86_PML4E_PG_MASK , pPage->idx, iShw2);675 pgmPoolFree(pVM, uShw.pPML4->a[iShw2].u & X86_PML4E_PG_MASK_FULL, pPage->idx, iShw2); 676 676 ASMAtomicWriteSize(&uShw.pPML4->a[iShw2].u, 0); 677 677 } … … 4348 4348 pgmPoolTrackFreeUser(pPool, pSubPage, pPage->idx, i); 4349 4349 else 4350 AssertFatalMsgFailed(("%RX64\n", pShwPML4->a[i].u & X86_PML4E_PG_MASK ));4350 AssertFatalMsgFailed(("%RX64\n", pShwPML4->a[i].u & X86_PML4E_PG_MASK_FULL)); 4351 4351 /** @todo 64-bit guests: have to ensure that we're not exhausting the dynamic mappings! */ 4352 4352 } -
trunk/src/VBox/VMM/VMMAll/PGMAllShw.h
r31775 r31998 217 217 /* PDPT */ 218 218 PX86PDPT pPDPT; 219 int rc = PGM_HCPHYS_2_PTR(pVM, pVCpu, Pml4e.u & X86_PML4E_PG_MASK , &pPDPT);219 int rc = PGM_HCPHYS_2_PTR(pVM, pVCpu, Pml4e.u & X86_PML4E_PG_MASK_FULL, &pPDPT); 220 220 if (RT_FAILURE(rc)) 221 221 return rc; … … 383 383 /* PDPT */ 384 384 PX86PDPT pPDPT; 385 rc = PGM_HCPHYS_2_PTR(pVM, pVCpu, Pml4e.u & X86_PML4E_PG_MASK , &pPDPT);385 rc = PGM_HCPHYS_2_PTR(pVM, pVCpu, Pml4e.u & X86_PML4E_PG_MASK_FULL, &pPDPT); 386 386 if (RT_FAILURE(rc)) 387 387 return rc;
Note:
See TracChangeset
for help on using the changeset viewer.