VirtualBox

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


Ignore:
Timestamp:
Feb 24, 2022 4:02:00 PM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
150159
Message:

VMM,VMMDev,scm,VBox/param.h: Don't use PAGE_BASE_GC_MASK and friends in the VMM. bugref:9898

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

Legend:

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

    r93922 r93931  
    11371137    Assert(!(fOpFlags & ~(PGM_MK_PG_IS_MMIO2 | PGM_MK_PG_IS_WRITE_FAULT)));
    11381138
    1139     GCPtr &= PAGE_BASE_GC_MASK; /** @todo this ain't necessary, right... */
     1139    GCPtr &= ~(RTGCPTR)GUEST_PAGE_OFFSET_MASK; /** @todo this ain't necessary, right... */
    11401140
    11411141    PVMCC pVM = pVCpu->CTX_SUFF(pVM);
     
    20702070    cb     += GCPtr & GUEST_PAGE_OFFSET_MASK;
    20712071    cb      = RT_ALIGN_Z(cb, GUEST_PAGE_SIZE);
    2072     GCPtr   = (GCPtr & PAGE_BASE_GC_MASK);
     2072    GCPtr  &= ~(RTGCPTR)GUEST_PAGE_OFFSET_MASK;
    20732073
    20742074    /*
  • trunk/src/VBox/VMM/VMMAll/PGMAllGst.h

    r93922 r93931  
    390390    pWalk->fSucceeded = true;
    391391    pWalk->GCPtr      = GCPtr;
    392     pWalk->GCPhys     = GCPtr & PAGE_BASE_GC_MASK;
     392    pWalk->GCPhys     = GCPtr & ~(RTGCPHYS)GUEST_PAGE_OFFSET_MASK;
    393393    pWalk->fEffective = X86_PTE_P | X86_PTE_RW | X86_PTE_US;
    394394    NOREF(pVCpu);
  • trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp

    r93725 r93931  
    11901190
    11911191            /* Temporarily allow write access to the page table again. */
    1192             rc = PGMHandlerPhysicalPageTempOff(pVM, pPage->GCPhys & PAGE_BASE_GC_MASK, pPage->GCPhys & PAGE_BASE_GC_MASK);
     1192            rc = PGMHandlerPhysicalPageTempOff(pVM,
     1193                                               pPage->GCPhys & ~(RTGCPHYS)GUEST_PAGE_OFFSET_MASK,
     1194                                               pPage->GCPhys & ~(RTGCPHYS)GUEST_PAGE_OFFSET_MASK);
    11931195            if (rc == VINF_SUCCESS)
    11941196            {
     
    16411643
    16421644    /* First write protect the page again to catch all write accesses. (before checking for changes -> SMP) */
    1643     int rc = PGMHandlerPhysicalReset(pVM, pPage->GCPhys & PAGE_BASE_GC_MASK);
     1645    int rc = PGMHandlerPhysicalReset(pVM, pPage->GCPhys & ~(RTGCPHYS)GUEST_PAGE_OFFSET_MASK);
    16441646    Assert(rc == VINF_SUCCESS);
    16451647    pPage->fDirty = false;
  • trunk/src/VBox/VMM/VMMAll/VMXAllTemplate.cpp.h

    r93930 r93931  
    85208520
    85218521            RTGCPHYS GCPhys = VCPU_2_VMXSTATE(pVCpu).vmx.u64GstMsrApicBase;    /* Always up-to-date, as it is not part of the VMCS. */
    8522             GCPhys &= PAGE_BASE_GC_MASK;
     8522            GCPhys &= ~(RTGCPHYS)GUEST_PAGE_OFFSET_MASK;
    85238523            GCPhys += VMX_EXIT_QUAL_APIC_ACCESS_OFFSET(pVmxTransient->uExitQual);
    85248524            Log4Func(("Linear access uAccessType=%#x GCPhys=%#RGp Off=%#x\n", uAccessType, GCPhys,
  • trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp

    r93574 r93931  
    79267926    {
    79277927        RTGCPHYS GCPhysApicBase = APICGetBaseMsrNoCheck(pVCpu);
    7928         GCPhysApicBase &= PAGE_BASE_GC_MASK;
     7928        GCPhysApicBase &= ~(RTGCPHYS)GUEST_PAGE_OFFSET_MASK;
    79297929
    79307930        if (GCPhysFaultAddr == GCPhysApicBase + XAPIC_OFF_TPR)
     
    82818281        RTGCPHYS GCPhysApicBase;
    82828282        GCPhysApicBase  = APICGetBaseMsrNoCheck(pVCpu);
    8283         GCPhysApicBase &= PAGE_BASE_GC_MASK;
     8283        GCPhysApicBase &= ~(RTGCPHYS)GUEST_PAGE_OFFSET_MASK;
    82848284
    82858285        /* Check if the page at the fault-address is the APIC base. */
  • trunk/src/VBox/VMM/VMMR3/CPUM.cpp

    r93905 r93931  
    41864186        {
    41874187            /* translate the address */
    4188             pState->pvPageGC = GCPtr & PAGE_BASE_GC_MASK;
     4188            pState->pvPageGC = GCPtr & ~(RTGCPTR)GUEST_PAGE_OFFSET_MASK;
    41894189
    41904190            /* Release mapping lock previously acquired. */
  • trunk/src/VBox/VMM/VMMR3/DBGFDisas.cpp

    r93554 r93931  
    221221
    222222            /* translate the address */
    223             pState->GCPtrPage = GCPtr & PAGE_BASE_GC_MASK;
     223            pState->GCPtrPage = GCPtr & ~(RTGCPTR)GUEST_PAGE_OFFSET_MASK;
    224224            if (pState->fLocked)
    225225                PGMPhysReleasePageMappingLock(pState->pVM, &pState->PageMapLock);
  • trunk/src/VBox/VMM/VMMR3/PGMPool.cpp

    r93716 r93931  
    703703
    704704        /* First write protect the page again to catch all write accesses. (before checking for changes -> SMP) */
    705         int rc = PGMHandlerPhysicalReset(pVM, pPage->GCPhys & PAGE_BASE_GC_MASK);
     705        int rc = PGMHandlerPhysicalReset(pVM, pPage->GCPhys & ~(RTGCPHYS)GUEST_PAGE_OFFSET_MASK);
    706706        AssertRCSuccess(rc);
    707707        pPage->fDirty = false;
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