VirtualBox

Changeset 18203 in vbox


Ignore:
Timestamp:
Mar 24, 2009 4:41:21 PM (16 years ago)
Author:
vboxsync
Message:

PGM: Fixed bugs in the code restoring shadowed ROM pages.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/PGM.cpp

    r18165 r18203  
    21752175            return &pRomRange->aPages[off >> PAGE_SHIFT];
    21762176    }
    2177     AssertLogRelMsgFailed(("GCPhys=%RGp\n", GCPhys));
    21782177    return NULL;
    21792178}
     
    25312530    }
    25322531
    2533     PPGMPAGE pPageActive  = PGMROMPROT_IS_ROM(enmProt) ? &pRomPage->Virgin : &pRomPage->Shadow;
    2534     PPGMPAGE pPagePassive = PGMROMPROT_IS_ROM(enmProt) ? &pRomPage->Shadow : &pRomPage->Virgin;
    2535 
    2536     rc = pgmR3LoadPage(pVM, pSSM, PGMPAGETYPE_ROM_SHADOW, pPage, GCPhys, pRam);
     2532    PPGMPAGE pPageActive  = PGMROMPROT_IS_ROM(enmProt) ? &pRomPage->Virgin      : &pRomPage->Shadow;
     2533    PPGMPAGE pPagePassive = PGMROMPROT_IS_ROM(enmProt) ? &pRomPage->Shadow      : &pRomPage->Virgin;
     2534    uint8_t  u8ActiveType = PGMROMPROT_IS_ROM(enmProt) ? PGMPAGETYPE_ROM        : PGMPAGETYPE_ROM_SHADOW;
     2535    uint8_t  u8PassiveType= PGMROMPROT_IS_ROM(enmProt) ? PGMPAGETYPE_ROM_SHADOW : PGMPAGETYPE_ROM;
     2536
     2537    rc = pgmR3LoadPage(pVM, pSSM, u8ActiveType, pPage, GCPhys, pRam);
    25372538    if (RT_SUCCESS(rc))
    25382539    {
    25392540        *pPageActive = *pPage;
    2540         rc = pgmR3LoadPage(pVM, pSSM, PGMPAGETYPE_ROM_SHADOW, pPagePassive, GCPhys, pRam);
     2541        rc = pgmR3LoadPage(pVM, pSSM, u8PassiveType, pPagePassive, GCPhys, pRam);
    25412542    }
    25422543    return rc;
     
    27732774                AssertLogRelMsgRCReturn(rc, ("pPage=%R[pgmpage] iPage=%#x GCPhysPage=%#x %s\n", pPage, iPage, GCPhysPage, pRam->pszDesc), rc);
    27742775                if (uType == PGMPAGETYPE_ROM_SHADOW)
    2775                     rc = pgmR3LoadShadowedRomPage(pVM, pSSM, pPage, GCPhys, pRam);
     2776                    rc = pgmR3LoadShadowedRomPage(pVM, pSSM, pPage, GCPhysPage, pRam);
    27762777                else
    27772778                    rc = pgmR3LoadPage(pVM, pSSM, uType, pPage, GCPhysPage, pRam);
    2778                 AssertLogRelMsgRCReturn(rc, ("rc=%Rrc iPage=%#x GCPhys=%#x %s\n", rc, iPage, pRam->GCPhys, pRam->pszDesc), rc);
     2779                AssertLogRelMsgRCReturn(rc, ("rc=%Rrc iPage=%#x GCPhysPage=%#x %s\n", rc, iPage, GCPhysPage, pRam->pszDesc), rc);
    27792780            }
    27802781        }
     
    28312832                        else
    28322833                            rc = pgmR3LoadPageZero(pVM, PGMPAGETYPE_INVALID, pPage, GCPhysPage, pRam);
    2833                         AssertLogRelMsgRCReturn(rc, ("rc=%Rrc iPage=%#x GCPhys=%#x %s\n", rc, iPage, pRam->GCPhys, pRam->pszDesc), rc);
     2834                        AssertLogRelMsgRCReturn(rc, ("rc=%Rrc iPage=%#x GCPhysPage=%#x %s\n", rc, iPage, GCPhysPage, pRam->pszDesc), rc);
    28342835                    }
    28352836                }
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