[PATCH] iommu/arm-smmu-v3: Cope with duplicated Stream IDs

Jayachandran C jnair at caviumnetworks.com
Tue Jan 2 10:42:19 PST 2018


On Tue, Jan 02, 2018 at 01:00:36PM +0000, Will Deacon wrote:
> On Tue, Jan 02, 2018 at 12:33:14PM +0000, Robin Murphy wrote:
> > For PCI devices behind an aliasing PCIe-to-PCI/X bridge, the bridge
> > alias to DevFn 0.0 on the subordinate bus may match the original RID of
> > the device, resulting in the same SID being present in the device's
> > fwspec twice. This causes trouble later in arm_smmu_write_strtab_ent()
> > when we wind up visiting the STE a second time and find it already live.
> > 
> > Avoid the issue by giving arm_smmu_install_ste_for_dev() the cleverness
> > to skip over duplicates. It seems mildly counterintuitive compared to
> > preventing the duplicates from existing in the first place, but since
> > the DT and ACPI probe paths build their fwspecs differently, this is
> > actually the cleanest and most self-contained way to deal with it.
> > 
> > Fixes: 8f78515425da ("iommu/arm-smmu: Implement of_xlate() for SMMUv3")
> > Reported-by: Tomasz Nowicki <tomasz.nowicki at caviumnetworks.com>
> > Tested-by: Tomasz Nowicki <Tomasz.Nowicki at cavium.com>
> > Tested-by: Jayachandran C. <jnair at caviumnetworks.com>
> > Signed-off-by: Robin Murphy <robin.murphy at arm.com>
> > ---
> >  drivers/iommu/arm-smmu-v3.c | 9 ++++++++-
> >  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> Cheers, Robin. I'll pick this up and send to Alex later this week along with
> a couple of other fixes I have kicking around.

Thanks. Even though the Fixes: tag points to an older commit, we
really need the fix in 4.14 where another commit (10631d724def drm/pci:
Deprecate drm_pci_init/exit completely) exposed the issue.

It it is not already planned, can you please cc stable?

JC.



More information about the linux-arm-kernel mailing list