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, The follows the "Make default_domain's mandatory" series Jason Gunthorpe (8): 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() arch/powerpc/kernel/iommu.c | 9 +-- drivers/iommu/apple-dart.c | 124 ++++++++++++++++++++----------- 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, 91 insertions(+), 65 deletions(-) base-commit: 494e0fef6db2e604bca0fc552d92b760b6e25d10 -- 2.42.0