x86/amd-iommu: Fix deassignment of a device from the pt_domain

commit d3ad9373b7 upstream.

Deassigning a device from the passthrough domain does not
work and breaks device assignment to kvm guests. This patch
fixes the issue.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Joerg Roedel
2010-02-03 16:13:41 +01:00
committed by Greg Kroah-Hartman
parent 16ecf8a237
commit 314a4e5441

View File

@@ -1230,9 +1230,10 @@ static void __detach_device(struct protection_domain *domain, u16 devid)
/*
* If we run in passthrough mode the device must be assigned to the
* passthrough domain if it is detached from any other domain
* passthrough domain if it is detached from any other domain.
* Make sure we can deassign from the pt_domain itself.
*/
if (iommu_pass_through) {
if (iommu_pass_through && domain != pt_domain) {
struct amd_iommu *iommu = amd_iommu_rlookup_table[devid];
__attach_device(iommu, pt_domain, devid);
}