[PATCH v2 0/9] iommu: Permit modular builds of ARM SMMU[v3] drivers

From: Will Deacon
Date: Fri Nov 08 2019 - 10:16:18 EST


Hi all,

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

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

Changes since v1 include:

* Build single "arm-smmu-mod.ko" module for the Arm SMMU driver
* Hold a reference to the IOMMU driver module across {add,remove}_device()
* Take a reference to the IOMMU driver module during of_xlate()
* Added Bjorn's ack on the PCI export patch

Please note that I haven't been able to test this properly, since I don't
currently have access to any Arm SMMU hardware.

Cheers,

Will

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: "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 (9):
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()
Revert "iommu/arm-smmu: Make arm-smmu-v3 explicitly non-modular"
iommu/arm-smmu-v3: Allow building as a module
Revert "iommu/arm-smmu: Make arm-smmu explicitly non-modular"
iommu/arm-smmu: Allow building as a module

drivers/iommu/Kconfig | 16 ++++++-
drivers/iommu/Makefile | 3 +-
drivers/iommu/arm-smmu-v3.c | 27 +++++++-----
drivers/iommu/arm-smmu.c | 87 ++++++++++++++++++++++---------------
drivers/iommu/iommu-sysfs.c | 5 +++
drivers/iommu/iommu.c | 27 +++++++++++-
drivers/iommu/of_iommu.c | 17 +++++---
drivers/pci/pci.c | 1 +
include/linux/iommu.h | 2 +
9 files changed, 130 insertions(+), 55 deletions(-)

--
2.24.0.rc1.363.gb1bccd3e3d-goog