intel-iommu: Unlink domain from iommu
commit226cf18f790d17a42c57466d9b473f0249ad7e9b
authorAlex Williamson <alex.williamson@redhat.com>
Fri, 4 Mar 2011 21:52:16 +0000 (4 14:52 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 9 May 2011 23:04:34 +0000 (9 16:04 -0700)
tree3008f94318a0d6b072703621af10456c6b6d40d0
parentc6b5960c27847134cbe68a10535f4601d7416746
intel-iommu: Unlink domain from iommu

commit a97590e56d0d58e1dd262353f7cbd84e81d8e600 upstream.

When we remove a device, we unlink the iommu from the domain, but
we never do the reverse unlinking of the domain from the iommu.
This means that we never clear iommu->domain_ids, eventually leading
to resource exhaustion if we repeatedly bind and unbind a device
to a driver.  Also free empty domains to avoid a resource leak.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Acked-by: Donald Dutile <ddutile@redhat.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/pci/intel-iommu.c