Re: [PATCH] iommu/of: Handle PCI aliases properly

From: Joerg Roedel
Date: Wed Jul 26 2017 - 05:12:35 EST


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.murphy@xxxxxxx>
> ---
>
> 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.