intel-iommu: Unlink domain from iommu
commit5cf96f2df3a6e956f53a10fa534a61b30d143abf
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 22:54:47 +0000 (9 15:54 -0700)
treed57a913b635313252109840685b997ca496bcd4d
parentef6fc37610655817ebfd0f68dbabba9ae81255f2
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