On Mon, Oct 17, 2022 at 02:45:53PM +0200, Niklas Schnelle wrote: > Since commit fa7e9ecc5e1c ("iommu/s390: Tolerate repeat attach_dev > calls") we can end up with duplicates in the list of devices attached to > a domain. This is inefficient and confusing since only one domain can > actually be in control of the IOMMU translations for a device. Fix this > by detaching the device from the previous domain, if any, on attach. > Add a WARN_ON() in case we still have attached devices on freeing the > domain. While here remove the re-attach on failure dance as it was > determined to be unlikely to help and may confuse debug and recovery. > > Fixes: fa7e9ecc5e1c ("iommu/s390: Tolerate repeat attach_dev calls") > Signed-off-by: Niklas Schnelle <schnelle@xxxxxxxxxxxxx> > Reviewed-by: Matthew Rosato <mjrosato@xxxxxxxxxxxxx> > --- > v6->v7: > - Added Matt's R-b > v5->v6: > - Only set zdev->dma_table once zpci_register_ioat() succeeded (Matt) > v4->v5: > - Unregister IOAT and set zdev->dma_table on error (Matt) Reviewed-by: Jason Gunthorpe <jgg@xxxxxxxxxx> Jason