VirtualBox

Changeset 20278 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Jun 4, 2009 1:14:37 PM (16 years ago)
Author:
vboxsync
Message:

Shadow page mode exit fix for AMD-V nested paging. (not called with type nested)

Location:
trunk/src/VBox/VMM
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/PGMShw.h

    r20129 r20278  
    229229PGM_SHW_DECL(int, Exit)(PVMCPU pVCpu)
    230230{
    231 #if PGM_SHW_TYPE == PGM_TYPE_NESTED || PGM_SHW_TYPE == PGM_TYPE_EPT
    232     if (pVCpu->pgm.s.CTX_SUFF(pShwPageCR3))
     231    PVM pVM = pVCpu->pVMR3;
     232
     233    if (    HWACCMIsNestedPagingActive(pVM)
     234        &&  pVCpu->pgm.s.CTX_SUFF(pShwPageCR3))
    233235    {
    234         PVM      pVM   = pVCpu->pVMR3;
    235236        PPGMPOOL pPool = pVM->pgm.s.CTX_SUFF(pPool);
    236237
     
    246247        pVCpu->pgm.s.iShwUser      = 0;
    247248        pVCpu->pgm.s.iShwUserTable = 0;
     249
     250        Log(("Leave nested shadow paging mode\n"));
    248251    }
    249     Log(("Leave nested shadow paging mode\n"));
    250 #endif
    251     return VINF_SUCCESS;
    252 }
    253 
    254 
    255 
     252    return VINF_SUCCESS;
     253}
     254
     255
     256
  • trunk/src/VBox/VMM/VMMAll/PGMAllMap.cpp

    r19808 r20278  
    221221    Log4(("pgmMapSetShadowPDEs new pde %x (mappings enabled %d)\n", iNewPDE, pgmMapAreMappingsEnabled(&pVM->pgm.s)));
    222222
    223     if (    !pgmMapAreMappingsEnabled(&pVM->pgm.s)
    224         ||  pVM->cCPUs > 1)
     223    if (!pgmMapAreMappingsEnabled(&pVM->pgm.s))
    225224        return;
    226225
     
    389388    Log(("pgmMapClearShadowPDEs: old pde %x (cPTs=%x) (mappings enabled %d) fDeactivateCR3=%RTbool\n", iOldPDE, pMap->cPTs, pgmMapAreMappingsEnabled(&pVM->pgm.s), fDeactivateCR3));
    390389
    391     if (    !pgmMapAreMappingsEnabled(&pVM->pgm.s)
    392         ||  pVM->cCPUs > 1)
     390    if (!pgmMapAreMappingsEnabled(&pVM->pgm.s))
    393391        return;
    394392
     
    633631     * Can skip this if mappings are disabled.
    634632     */
    635     if (    !pgmMapAreMappingsEnabled(&pVM->pgm.s)
    636         ||  pVM->cCPUs > 1)
     633    if (!pgmMapAreMappingsEnabled(&pVM->pgm.s))
    637634        return VINF_SUCCESS;
    638635
     
    669666     * Can skip this if mappings are disabled.
    670667     */
    671     if (    !pgmMapAreMappingsEnabled(&pVM->pgm.s)
    672         ||  pVM->cCPUs > 1)
     668    if (!pgmMapAreMappingsEnabled(&pVM->pgm.s))
    673669        return VINF_SUCCESS;
    674670
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette