[PATCH v2 0/9] iommu: Convert dart & iommufd to the new domain_alloc_paging()

Jason Gunthorpe jgg at nvidia.com
Thu Sep 28 09:47:30 AEST 2023


Continue converting drivers to the new interface. Introduce
ops->blocked_domain to hold the global static BLOCKED domain and convert
all drivers supporting BLOCKED to use it.

This makes it trivial for dart and iommufd to convert over to
domain_alloc_paging().

There are six drivers remaining:

drivers/iommu/amd/iommu.c:      .domain_alloc = amd_iommu_domain_alloc,
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c:    .domain_alloc           = arm_smmu_domain_alloc,
drivers/iommu/arm/arm-smmu/arm-smmu.c:  .domain_alloc           = arm_smmu_domain_alloc,
drivers/iommu/fsl_pamu_domain.c:        .domain_alloc   = fsl_pamu_domain_alloc,
drivers/iommu/intel/iommu.c:    .domain_alloc           = intel_iommu_domain_alloc,
drivers/iommu/virtio-iommu.c:   .domain_alloc           = viommu_domain_alloc,

v2:
 - Rebase to Joerg's for-next
 - New patch to remove force_bypass, as discussed with Janne
 - Move some hunks between patches to accommodate Robin's change to the
   attach_dev switch
v1: https://lore.kernel.org/r/0-v1-8060f06462cc+c0a39-dart_paging_jgg@nvidia.com

Jason Gunthorpe (9):
  iommu: Move IOMMU_DOMAIN_BLOCKED global statics to ops->blocked_domain
  iommu/vt-d: Update the definition of the blocking domain
  iommu/vt-d: Use ops->blocked_domain
  iommufd: Convert to alloc_domain_paging()
  iommu/dart: Use static global identity domains
  iommu/dart: Move the blocked domain support to a global static
  iommu/dart: Convert to domain_alloc_paging()
  iommu/dart: Call apple_dart_finalize_domain() as part of
    alloc_paging()
  iommu/dart: Remove the force_bypass variable

 arch/powerpc/kernel/iommu.c      |   9 +-
 drivers/iommu/apple-dart.c       | 137 ++++++++++++++++++-------------
 drivers/iommu/intel/iommu.c      |   7 +-
 drivers/iommu/iommu.c            |   2 +
 drivers/iommu/iommufd/selftest.c |  11 +--
 include/linux/iommu.h            |   3 +
 6 files changed, 94 insertions(+), 75 deletions(-)


base-commit: 83653d8508051af13f74905fc3f6c2fa2e59dbee
-- 
2.42.0



More information about the Linuxppc-dev mailing list