On Wed, May 31, 2017 at 06:52:29PM +0100, Robin Murphy wrote: > 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: Robin Murphy <robin.mur...@arm.com> > --- > > This applies on top of the fix currently queued in the IOMMU tree: > "iommu/of: Ignore all errors except EPROBE_DEFER" > > drivers/iommu/of_iommu.c | 104 > +++++++++++++++++++++-------------------------- > 1 file changed, 47 insertions(+), 57 deletions(-)
Applied, thanks.