VirtualBox

Changeset 87525 in vbox for trunk/src


Ignore:
Timestamp:
Feb 2, 2021 5:35:56 AM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
142550
Message:

AMD IOMMU: bugref:9654 IOTLB cache bits.

File:
1 edited

Legend:

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

    r87510 r87525  
    135135    /** The number of offset bits in the system physical address. */
    136136    uint8_t         cShift;
    137     /** The I/O permissions allowed by the translation (IOMMU_IO_PERM_XXX). */
    138     uint8_t         fIoPerm;
     137    /** The I/O permissions allowed for this translation (IOMMU_IO_PERM_XXX). */
     138    uint8_t         fPerm;
    139139    /** Padding. */
    140140    uint8_t         abPadding[2];
     
    638638    Assert(pWalkResult);
    639639    Assert(pWalkResult->cShift < 63);
    640     Assert(pWalkResult->fIoPerm != IOMMU_IO_PERM_NONE);
     640    Assert(pWalkResult->fPerm != IOMMU_IO_PERM_NONE);
    641641
    642642    /*
     
    27002700        pWalkResult->GCPhysSpa = uIova;
    27012701        pWalkResult->cShift    = 0;
    2702         pWalkResult->fIoPerm   = fDtePerm;
     2702        pWalkResult->fPerm     = fDtePerm;
    27032703        return VINF_IOMMU_ADDR_TRANSLATION_DISABLED;
    27042704    }
     
    28252825            pWalkResult->GCPhysSpa = PtEntity.u64 & IOMMU_PTENTITY_ADDR_MASK;
    28262826            pWalkResult->cShift    = X86_PAGE_4K_SHIFT;
    2827             pWalkResult->fIoPerm   = fPtePerm;
     2827            pWalkResult->fPerm     = fPtePerm;
    28282828            return VINF_SUCCESS;
    28292829        }
     
    28432843                pWalkResult->GCPhysSpa = GCPhysPte;
    28442844                pWalkResult->cShift    = cShift;
    2845                 pWalkResult->fIoPerm   = fPtePerm;
     2845                pWalkResult->fPerm     = fPtePerm;
    28462846                return VINF_SUCCESS;
    28472847            }
     
    29562956{
    29572957#ifdef IOMMU_WITH_IOTLBE_CACHE
    2958     if (   pWalkResultPrev->cShift  == pWalkResult->cShift
    2959         && pWalkResultPrev->fIoPerm == pWalkResult->fIoPerm
     2958    if (   pWalkResultPrev->cShift == pWalkResult->cShift
     2959        && pWalkResultPrev->fPerm  == pWalkResult->fPerm
    29602960        && iommuAmdDteLookupIsAddrPhysContig(pWalkResultPrev, pWalkResult))
    29612961        return true;
     
    30863086                        Assert(WalkResult.cShift    == 0);
    30873087                        Assert(WalkResult.GCPhysSpa == uIova);
    3088                         Assert((WalkResult.fIoPerm & fAccess) == fAccess);
     3088                        Assert((WalkResult.fPerm & fAccess) == fAccess);
    30893089                        /** @todo IOMMU: Add to IOLTB cache. */
    30903090                    }
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