IOMMU Fixes for Linux v4.5-rc6

Including one fix for Intel VT-d:

	* Use BUS_NOTIFY_REMOVED_DEVICE notifier to unbind a device from
	  its domain _after_ it has been unbound from its driver. This
	  fixes a BUG_ON being triggered in the PCI hotplug path.

And three for AMD IOMMU:

	* Add a workaround for a hardware issue with ATS in use

	* Fix ATS enable/disable balance when a device is removed

	* Fix a boot warning being triggered when the system has IOMMU
	  performance counters and PCI device 00:00.0 is not covered by
	  the IOMMU
iommu/vt-d: Use BUS_NOTIFY_REMOVED_DEVICE in hotplug path

In the PCI hotplug path of the Intel IOMMU driver, replace
the usage of the BUS_NOTIFY_DEL_DEVICE notifier, which is
executed before the driver is unbound from the device, with
BUS_NOTIFY_REMOVED_DEVICE, which runs after that.

This fixes a kernel BUG being triggered in the VT-d code
when the device driver tries to unmap DMA buffers and the
VT-d driver already destroyed all mappings.

Reported-by: Stefani Seibold <stefani@seibold.net>
Cc: stable@vger.kernel.org # v4.3+
Signed-off-by: Joerg Roedel <jroedel@suse.de>
2 files changed