From: Joerg Roedel Date: Mon, 8 Jun 2009 20:47:33 +0000 (-0700) Subject: amd-iommu: detach device explicitly before attaching it to a new domain X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=71ff3bca2f70264effe8cbbdd5bc10cf6be5f2f0;p=deliverable%2Flinux.git amd-iommu: detach device explicitly before attaching it to a new domain This fixes a bug with a device that could not be assigned to a KVM guest because it is still assigned to a dma_ops protection domain. [chrisw: simply remove WARN_ON(), will always fire since dev->driver will be pci-sub] Signed-off-by: Chris Wright Signed-off-by: Joerg Roedel --- diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c index 81872604eb76..772e91088e40 100644 --- a/arch/x86/kernel/amd_iommu.c +++ b/arch/x86/kernel/amd_iommu.c @@ -2073,7 +2073,7 @@ static int amd_iommu_attach_device(struct iommu_domain *dom, old_domain = domain_for_device(devid); if (old_domain) - return -EBUSY; + detach_device(old_domain, devid); attach_device(iommu, domain, devid);