[PATCH v2 0/2] Use right iommu_ops for mock device

From: Lu Baolu
Date: Fri Jan 26 2024 - 05:59:30 EST


In the iommu probe device path, __iommu_probe_device() gets the iommu_ops
for the device from dev->iommu->fwspec if this field has been initialized
before probing. Otherwise, it will lookup the global iommu device list
and use the iommu_ops of the first iommu device which has no
dev->iommu->fwspec. This causes the wrong iommu_ops to be used for the mock
device on x86 platforms where dev->iommu->fwspec is not used.

Probe the right iommu_ops for device by iterating over all the global
drivers and calling their probe function to find a match.

Change log:
v2:
- Iterate over all the global iommu drivers and calling their probe
function to find a match.

v1: https://lore.kernel.org/linux-iommu/20240111073213.180020-1-baolu.lu@xxxxxxxxxxxxxxx/

Lu Baolu (2):
iommu: Use mutex instead of spinlock for iommu_device_list
iommu: Probe right iommu_ops for device

drivers/iommu/iommu.c | 98 ++++++++++++++++++++++++++-----------------
1 file changed, 59 insertions(+), 39 deletions(-)

--
2.34.1