• Robin Murphy's avatar
    iommu/of: Handle PCI aliases properly · d87beb74
    Robin Murphy authored
    When a PCI device has DMA quirks, we need to ensure that an upstream
    IOMMU knows about all possible aliases, since the presence of a DMA
    quirk does not preclude the device still also emitting transactions
    (e.g. MSIs) on its 'real' RID. Similarly, the rules for bridge aliasing
    are relatively complex, and some bridges may only take ownership of
    transactions under particular transient circumstances, leading again to
    multiple RIDs potentially being seen at the IOMMU for the given device.
    
    Take all this into account in the OF code by translating every RID
    produced by the alias walk, not just whichever one comes out last.
    Happily, this also makes things tidy enough that we can reduce the
    number of both total lines of code, and confusing levels of indirection,
    by pulling the "iommus"/"iommu-map" parsing helpers back in-line again.
    Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
    Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
    d87beb74
of_iommu.c 6.77 KB