On Tue, 2023-05-02 at 12:25 -0300, Jason Gunthorpe wrote: > On Tue, May 02, 2023 at 04:52:32PM +0200, Niklas Schnelle wrote: > > @@ -1947,7 +1948,7 @@ static struct iommu_domain *__iommu_domain_alloc(struct bus_type *bus, > > if ((type == IOMMU_DOMAIN_UNMANAGED || type == IOMMU_DOMAIN_DMA) && > > bus->iommu_ops->domain_alloc_paging) > > domain = bus->iommu_ops->domain_alloc_paging(dev); > > - else > > + else if (bus->iommu_ops->domain_alloc) > > domain = bus->iommu_ops->domain_alloc(type); > > if (!domain) > > return NULL; > > Agh, yes, it should fail, this is right, I'll fold it in, thanks > > > This then uses the fallback of an empty IOMMU_DOMAIN_UNMANAGED and I > > get a working device in the guest. Also tried hot unplug where the > > device is taken over by the host again. > > Great, thanks, I'll add your tested-by for the s390 drivers. Yes and with the above change feel free to add my for this patch and see my other reply for the s390 specific change. Acked-by: Niklas Schnelle <schnelle@xxxxxxxxxxxxx> # s390 (I've recently been added as additional S390 IOMMU (PCI) maintainer)