On Thu, Jan 25, 2024 at 06:08:52AM -0600, Shivaprasad G Bhat wrote: > On PPC64, the iommu_ops.def_domain_type() is not defined and > CONFIG_IOMMU_DMA not enabled. With commit 0f6a90436a57 ("iommu: Do not > use IOMMU_DOMAIN_DMA if CONFIG_IOMMU_DMA is not enabled"), the > iommu_get_default_domain_type() return IOMMU_DOMAIN_IDENTITY. With > commit 2ad56efa80db ("powerpc/iommu: Setup a default domain and remove > set_platform_dma_ops"), the defaule_domain is set wih the type being > PLATFORM. With these two changes, iommu_group_alloc_default_domain() > ends up returning the NULL(with recent changes, ERR_PTR(-EINVAL)) > leading to iommu_probe_device() failure and the device has no > iommu_group set in effect. Subsequently, the bind to vfio(VFIO_IOMMU) > fail as the iommu_group is not set for the device. > > Make the iommu_get_default_domain_type() to take default_domain->type > into consideration along with default_domain_type() and fix > iommu_group_alloc_default_domain() to not error out if the requested > type is same as default domain type. > > Fixes: 2ad56efa80db ("powerpc/iommu: Setup a default domain and remove > set_platform_dma_ops") > Fixes: 0f6a90436a57 ("iommu: Do not use IOMMU_DOMAIN_DMA if CONFIG_IOMMU_DMA > is not enabled") > Signed-off-by: Shivaprasad G Bhat <sb...@linux.ibm.com> > --- > drivers/iommu/iommu.c | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-)
Are you OK with this version? https://lore.kernel.org/linux-iommu/20240123174905.gs50...@ziepe.ca/ ? I think it does the same thing Jason