Question: multiple SMMUv3 devices probe

richard clark richard.xnu.clark at gmail.com
Wed Apr 7 10:37:52 BST 2021


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?

Thanks,
RC



More information about the linux-arm-kernel mailing list