VirtualBox

Ignore:
Timestamp:
Mar 9, 2009 5:11:35 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
44054
Message:

Backed out 44052

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/PGMAll.cpp

    r17592 r17593  
    914914            if (CPUMGetGuestCR4(pVM) & X86_CR4_PAE)
    915915            {
    916                 AssertMsg(pGstPdpe->n.u1Present, ("GstPdpe=%RX64\n", pGstPdpe->u));
    917                 GCPdPt  = pGstPdpe->u & X86_PDPE_PG_MASK;
    918                 enmKind = PGMPOOLKIND_PAE_PD_FOR_PAE_PD;
     916                if (!pGstPdpe->n.u1Present)
     917                {
     918                    /* PD not present; guest must reload CR3 to change it.
     919                     * No need to monitor anything in this case.
     920                     */
     921                    Assert(!HWACCMIsEnabled(pVM));
     922
     923                    GCPdPt  = pGstPdpe->u & X86_PDPE_PG_MASK;
     924                    enmKind = PGMPOOLKIND_PAE_PD_PHYS;
     925                    pGstPdpe->n.u1Present = 1;
     926                }
     927                else
     928                {
     929                    GCPdPt  = pGstPdpe->u & X86_PDPE_PG_MASK;
     930                    enmKind = PGMPOOLKIND_PAE_PD_FOR_PAE_PD;
     931                }
    919932            }
    920933            else
     
    922935                GCPdPt  = CPUMGetGuestCR3(pVM);
    923936                enmKind = (PGMPOOLKIND)(PGMPOOLKIND_PAE_PD0_FOR_32BIT_PD + iPdPt);
    924                 Assert(pGstPdpe->n.u1Present);
    925937            }
    926938        }
Note: See TracChangeset for help on using the changeset viewer.

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