[PATCH v3 00/15] iommu: Retire bus_set_iommu()

Robin Murphy
2022-07-05T17:08:47Z

v2: https://lore.kernel.org/linux-iommu/cover.1650890638.git.robin.murphy@arm.com/

Hi all,

Here's v3, now with working x86! Having finally made sense of how I
broke Intel, I've given AMD the same fix by inspection. I'm still not
100% sure about s390, but it looks like it should probably be OK since
it seems to register an IOMMU instance for each PCI device (?!) before
disappearing into PCI hotplug code, wherein I assume we should never see
a PCI device appear without its IOMMU already registered.

Otherwise, the only other updates are hooking up the new host1x context
bus (noting that it now takes all of 4 lines to support a whole new bus,
yay!), and a slight tweak to make sure we keep rejecting registration of
conflicting iommu_ops rather than needlessly change that just yet.

Thanks,
Robin.

Robin Murphy (15):
iommu/vt-d: Handle race between registration and device probe
iommu/amd: Handle race between registration and device probe
iommu: Always register bus notifiers
iommu: Move bus setup to IOMMU device registration
iommu/amd: Clean up bus_set_iommu()
iommu/arm-smmu: Clean up bus_set_iommu()
iommu/arm-smmu-v3: Clean up bus_set_iommu()
iommu/dart: Clean up bus_set_iommu()
iommu/exynos: Clean up bus_set_iommu()
iommu/ipmmu-vmsa: Clean up bus_set_iommu()
iommu/mtk: Clean up bus_set_iommu()
iommu/omap: Clean up bus_set_iommu()
iommu/tegra-smmu: Clean up bus_set_iommu()
iommu/virtio: Clean up bus_set_iommu()
iommu: Clean up bus_set_iommu()

drivers/iommu/amd/amd_iommu.h | 1 -
drivers/iommu/amd/init.c | 9 +-
drivers/iommu/amd/iommu.c | 25 +----
drivers/iommu/apple-dart.c | 30 +----
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 53 +--------
drivers/iommu/arm/arm-smmu/arm-smmu.c | 84 +-------------
drivers/iommu/arm/arm-smmu/qcom_iommu.c | 4 -
drivers/iommu/exynos-iommu.c | 9 --
drivers/iommu/fsl_pamu_domain.c | 4 -
drivers/iommu/intel/iommu.c | 4 +-
drivers/iommu/iommu.c | 117 +++++++++-----------
drivers/iommu/ipmmu-vmsa.c | 35 +-----
drivers/iommu/msm_iommu.c | 2 -
drivers/iommu/mtk_iommu.c | 24 +---
drivers/iommu/mtk_iommu_v1.c | 13 +--
drivers/iommu/omap-iommu.c | 6 -
drivers/iommu/rockchip-iommu.c | 2 -
drivers/iommu/s390-iommu.c | 6 -
drivers/iommu/sprd-iommu.c | 5 -
drivers/iommu/sun50i-iommu.c | 2 -
drivers/iommu/tegra-smmu.c | 29 +----
drivers/iommu/virtio-iommu.c | 25 -----
include/linux/iommu.h | 1 -
23 files changed, 75 insertions(+), 415 deletions(-)

--
2.36.1.dirty