- Timestamp:
- Feb 25, 2009 3:27:37 PM (16 years ago)
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r17134 r17135 4656 4656 rc = VINF_SUCCESS; 4657 4657 4658 # ifdef IN_RC 4659 /** NOTE: We can't deal with jumps to ring 3 here as we're now in an inconsistent state! */ 4660 # endif 4658 4661 pVM->pgm.s.iShwUser = SHW_POOL_ROOT_IDX; 4659 4662 pVM->pgm.s.iShwUserTable = GCPhysCR3 >> PAGE_SHIFT; … … 4691 4694 CPUMSetHyperCR3(pVM, PGMGetHyperCR3(pVM)); 4692 4695 4696 # ifdef IN_RC 4697 /** NOTE: Everything safe again. */ 4698 # endif 4699 4693 4700 /* Clean up the old CR3 root. */ 4694 4701 if (pOldShwPageCR3) -
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r17133 r17135 4474 4474 * 4475 4475 * @param pPool The pool. 4476 * @param enmKind Page table kind 4476 4477 * @param iUser The user of the page. 4477 4478 */ 4478 static int pgmPoolMakeMoreFreePages(PPGMPOOL pPool, uint16_t iUser)4479 static int pgmPoolMakeMoreFreePages(PPGMPOOL pPool, PGMPOOLKIND enmKind, uint16_t iUser) 4479 4480 { 4480 4481 LogFlow(("pgmPoolMakeMoreFreePages: iUser=%#x\n", iUser)); … … 4483 4484 * If the pool isn't full grown yet, expand it. 4484 4485 */ 4485 if (pPool->cCurPages < pPool->cMaxPages) 4486 if ( pPool->cCurPages < pPool->cMaxPages 4487 #if defined(VBOX_WITH_PGMPOOL_PAGING_ONLY) && defined(IN_RC) 4488 /* Hack alert: we can't deal with jumps to ring 3 when called from MapCR3 and allocating pages for PAE PDs. */ 4489 && enmKind != PGMPOOLKIND_PAE_PD_FOR_PAE_PD 4490 && (enmKind < PGMPOOLKIND_PAE_PD0_FOR_32BIT_PD || enmKind > PGMPOOLKIND_PAE_PD3_FOR_32BIT_PD) 4491 #endif 4492 ) 4486 4493 { 4487 4494 STAM_PROFILE_ADV_SUSPEND(&pPool->StatAlloc, a); … … 4567 4574 if (iNew == NIL_PGMPOOL_IDX) 4568 4575 { 4569 rc = pgmPoolMakeMoreFreePages(pPool, iUser);4576 rc = pgmPoolMakeMoreFreePages(pPool, enmKind, iUser); 4570 4577 if (RT_FAILURE(rc)) 4571 4578 {
Note:
See TracChangeset
for help on using the changeset viewer.