Question: multiple SMMUv3 devices probe

Jean-Philippe Brucker jean-philippe at linaro.org
Thu Apr 8 08:25:14 BST 2021


Hi,

On Wed, Apr 07, 2021 at 05:37:52PM +0800, richard clark wrote:
> Hi guys,
> There're 3 SMMUv3 devices in my arm64 box. I am confused by the below
> probe process:
> 
> arm_smmu_device_probe(...) --> arm_smmu_set_bus_ops(&arm_smmu_ops):
> if (platform_bus_type.iommu_ops != ops) {
>         err = bus_set_iommu(&platform_bus_type, ops);
>         if (err)
> }
> 
> so for the 1st smmu device on the platform_bus, the
> arm_smmu_device_probe(...) will set the platform_bus_type.iommu_bus =
> arm_smmu_ops, so for the arm_smmu_device_probe(...) when probing the
> 2nd smmu device, the bus_set_iommu() will have no chance be called
> since the platform_bus_type.iommu_bus == arm_smmu_ops is true, my
> question is how the followed bus_set_iommu(...) being called?

arm_smmu_ops is the same for all SMMU devices, so bus_set_iommu() only
needs to be called once.

Thanks,
Jean



More information about the linux-arm-kernel mailing list