I've also considered what Baolu described, but it requires to do someIf you are going to do that then intel_iommu_domain_alloc() should+No need to bounce between core and driver. Just,
+ domain = iommu_domain_alloc(dev->bus);
intel_iommu_domain_alloc(IOMMU_DOMAIN_UNMANAGED);
and fully initialize it before return.
fully initialize the domain, not here.
extra initialization which is duplicated with iommu_domain_alloc().
So I chose this simple way.