[PATCH v3 00/14] iommu: Permit modular builds of ARM SMMU[v3] drivers

From: Will Deacon
Date: Thu Nov 21 2019 - 06:49:26 EST


Hi everyone,

This is version three of the patches I previously posted here:

v1: https://lore.kernel.org/lkml/20191030145112.19738-1-will@xxxxxxxxxx/
v2: https://lore.kernel.org/lkml/20191108151608.20932-1-will@xxxxxxxxxx

Changes since v2 include:

* Tested successfully on real hardware (!)
* Handle re-registering of IOMMU bus ops
* Unregister IOMMU on unload
* Prevent forced unbinding of SMMU drivers via sysfs
* Update my email address in MODULE_AUTHOR

Note that if you want to rely on the 'of_devlink' support in linux-next
for dependent probe ordering, then you'll need an extra patch [1] to
support PCI devices upstream of an SMMU. I'm routing that one via Greg.

Will

[1] https://lore.kernel.org/lkml/20191120190028.4722-1-will@xxxxxxxxxx

Cc: Jean-Philippe Brucker <jean-philippe@xxxxxxxxxx>
Cc: Jordan Crouse <jcrouse@xxxxxxxxxxxxxx>
Cc: John Garry <john.garry@xxxxxxxxxx>
Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Cc: Saravana Kannan <saravanak@xxxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: "Isaac J. Manjarres" <isaacm@xxxxxxxxxxxxxx>
Cc: Robin Murphy <robin.murphy@xxxxxxx>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
Cc: Joerg Roedel <joro@xxxxxxxxxx>

--->8

Will Deacon (14):
drivers/iommu: Export core IOMMU API symbols to permit modular drivers
iommu/of: Request ACS from the PCI core when configuring IOMMU linkage
PCI: Export pci_ats_disabled() as a GPL symbol to modules
drivers/iommu: Take a ref to the IOMMU driver prior to ->add_device()
iommu/of: Take a ref to the IOMMU driver during ->of_xlate()
drivers/iommu: Allow IOMMU bus ops to be unregistered
Revert "iommu/arm-smmu: Make arm-smmu-v3 explicitly non-modular"
Revert "iommu/arm-smmu: Make arm-smmu explicitly non-modular"
iommu/arm-smmu: Prevent forced unbinding of Arm SMMU drivers
iommu/arm-smmu-v3: Unregister IOMMU and bus ops on device removal
iommu/arm-smmu-v3: Allow building as a module
iommu/arm-smmu: Unregister IOMMU and bus ops on device removal
iommu/arm-smmu: Allow building as a module
iommu/arm-smmu: Update my email address in MODULE_AUTHOR()

drivers/iommu/Kconfig | 16 ++++-
drivers/iommu/Makefile | 3 +-
drivers/iommu/arm-smmu-v3.c | 93 +++++++++++++++++---------
drivers/iommu/arm-smmu.c | 127 +++++++++++++++++++++++++-----------
drivers/iommu/iommu-sysfs.c | 5 ++
drivers/iommu/iommu.c | 32 ++++++++-
drivers/iommu/of_iommu.c | 17 +++--
drivers/pci/pci.c | 1 +
include/linux/iommu.h | 2 +
9 files changed, 215 insertions(+), 81 deletions(-)

--
2.24.0.432.g9d3f5f5b63-goog