VirtualBox

Changeset 34197 in vbox for trunk/src


Ignore:
Timestamp:
Nov 19, 2010 1:18:50 PM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
67937
Message:

dbgfR3CoreWrite: Must use PGMPhysSimpleReadGCPhys because PGMPhysRead has sideffects on read access handled pages and runs into trouble with MMIO.

File:
1 edited

Legend:

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

    r34194 r34197  
    448448        /*
    449449         * Write page-by-page of this memory range.
     450         *
     451         * The read function may fail on MMIO ranges, we write these as zero
     452         * pages for now (would be nice to have the VGA bits there though).
    450453         */
    451454        uint64_t cbMemRange  = GCPhysEnd - GCPhysStart + 1;
     
    454457        {
    455458            uint8_t abPage[PAGE_SIZE];
    456             rc = PGMPhysRead(pVM, GCPhysStart + (iPage << PAGE_SHIFT), abPage, sizeof(abPage));
     459            rc = PGMPhysSimpleReadGCPhys(pVM, abPage, GCPhysStart + (iPage << PAGE_SHIFT), sizeof(abPage));
    457460            if (RT_FAILURE(rc))
    458461            {
    459                 /*
    460                  * For some reason this failed, write out a zero page instead.
    461                  */
    462                 LogRel((DBGFLOG_NAME ": PGMPhysRead failed for iRange=%u iPage=%u. rc=%Rrc. Ignoring...\n", iRange, iPage, rc));
     462                if (rc != VERR_PGM_PHYS_PAGE_RESERVED)
     463                    LogRel((DBGFLOG_NAME ": PGMPhysRead failed for iRange=%u iPage=%u. rc=%Rrc. Ignoring...\n", iRange, iPage, rc));
    463464                RT_ZERO(abPage);
    464465            }
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