RE: [PATCH v3 04/15] iommu: Move bus setup to IOMMU device registration
From: "Tian, Kevin" <kevin.tian@intel.com>
Date: 2022-07-07 06:51:25
Also in:
linux-iommu, linux-s390, lkml
From: "Tian, Kevin" <kevin.tian@intel.com>
Date: 2022-07-07 06:51:25
Also in:
linux-iommu, linux-s390, lkml
From: Robin Murphy <robin.murphy@arm.com> Sent: Wednesday, July 6, 2022 1:08 AM@@ -202,12 +210,32 @@ int iommu_device_register(struct iommu_device*iommu, spin_lock(&iommu_device_lock); list_add_tail(&iommu->list, &iommu_device_list); spin_unlock(&iommu_device_lock); + + for (int i = 0; i < ARRAY_SIZE(iommu_buses); i++) { + struct bus_type *bus = iommu_buses[i]; + int err; + + if (bus->iommu_ops && bus->iommu_ops != ops) { + err = -EBUSY; + } else { + bus->iommu_ops = ops; + err = bus_iommu_probe(bus); + } + if (err) { + iommu_device_unregister(iommu); + return err; + } + } +
Probably move above into a new function bus_iommu_probe_all():
/* probe all buses for devices associated with this iommu */
err = bus_iommu_probe_all();
if (err) {
iommu_device_unregister(iommu);
return err;
}
Just my personal preference on leaving logic in iommu_device_register()
more relevant to the iommu instance itself.
Apart from that:
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel