iommu/s390: Fix duplicate domain attachments
authorNiklas Schnelle <schnelle@linux.ibm.com>
Tue, 25 Oct 2022 11:56:52 +0000 (13:56 +0200)
committerJoerg Roedel <jroedel@suse.de>
Thu, 3 Nov 2022 14:40:52 +0000 (15:40 +0100)
commitbf8d2dd2ed0825a58f31cc510245a1eb46f8a87e
tree2fe6468df14c3c1b5a257b4705ba00b6e712b6be
parent30a0b95b1335e12efef89dd78518ed3e4a71a763
iommu/s390: Fix duplicate domain attachments

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")
Reviewed-by: Matthew Rosato <mjrosato@linux.ibm.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
Link: https://lore.kernel.org/r/20221025115657.1666860-2-schnelle@linux.ibm.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/s390-iommu.c