diff options
author | Joerg Roedel <joerg.roedel@amd.com> | 2009-06-08 16:47:33 -0400 |
---|---|---|
committer | Joerg Roedel <joerg.roedel@amd.com> | 2009-06-09 05:14:14 -0400 |
commit | 71ff3bca2f70264effe8cbbdd5bc10cf6be5f2f0 (patch) | |
tree | 0930054b71a0d674d71ea05d7575e4a7efac7bf3 /arch/x86/kernel/amd_iommu.c | |
parent | 29150078d7a1758df8c7a6cd2ec066ac65e1fab9 (diff) |
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 <chrisw@sous-sol.org>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Diffstat (limited to 'arch/x86/kernel/amd_iommu.c')
-rw-r--r-- | arch/x86/kernel/amd_iommu.c | 2 |
1 files changed, 1 insertions, 1 deletions
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, | |||
2073 | 2073 | ||
2074 | old_domain = domain_for_device(devid); | 2074 | old_domain = domain_for_device(devid); |
2075 | if (old_domain) | 2075 | if (old_domain) |
2076 | return -EBUSY; | 2076 | detach_device(old_domain, devid); |
2077 | 2077 | ||
2078 | attach_device(iommu, domain, devid); | 2078 | attach_device(iommu, domain, devid); |
2079 | 2079 | ||