On 2022-04-29 07:57, Baolu Lu wrote:
Hi Robin,
On 2022/4/28 21:18, Robin Murphy wrote:
Move the bus setup to iommu_device_register(). This should allow
bus_iommu_probe() to be correctly replayed for multiple IOMMU instances,
and leaves bus_set_iommu() as a glorified no-op to be cleaned up next.
I re-fetched the latest patches on
https://gitlab.arm.com/linux-arm/linux-rm/-/commits/iommu/bus
and rolled back the head to "iommu: Cleanup bus_set_iommu".
The test machine still hangs during boot.
I went through the code. It seems that the .probe_device for Intel IOMMU
driver can't handle the probe replay well. It always assumes that the
device has never been probed.
Hmm, but probe_iommu_group() is supposed to prevent the __iommu_probe_device() call even happening if the device *has* already been probed before :/
I've still got an old Intel box spare in the office so I'll rig that up and see if I can see what might be going on here...