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

Will Deacon will.deacon at arm.com
Tue Jan 2 05:00:36 PST 2018


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.

Will



More information about the linux-arm-kernel mailing list