VirtualBox

Changeset 84236 in vbox


Ignore:
Timestamp:
May 10, 2020 3:25:16 AM (5 years ago)
Author:
vboxsync
Message:

AMD IOMMU: bugref:9654 Don't forget to add the page offset into the final, translated physical address.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Bus/DevIommuAmd.cpp

    r84228 r84236  
    42764276                /* Record the translated base address (before continuing to check permission bits of any subsequent pages). */
    42774277                if (cbChecked == 0)
    4278                     *pGCPhysSpa = Iotlbe.GCPhysSpa;
     4278                {
     4279                    RTGCPHYS const offSpa = ~(UINT64_C(0xffffffffffffffff) << Iotlbe.cShift);
     4280                    *pGCPhysSpa = Iotlbe.GCPhysSpa | offSpa;
     4281                }
    42794282
    42804283                /** @todo IOMMU: Split large pages into 4K IOTLB entries and add to IOTLB cache. */
    42814284
    42824285                uint64_t const cbPhysPage = UINT64_C(1) << Iotlbe.cShift;
    4283                 cbChecked += cbPhysPage;
     4286                cbChecked += cbPhysPage;        /** @todo IOMMU: We need to consider the offset here. */
    42844287                if (cbChecked >= cbAccess)
    42854288                    break;
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