[72/93] x86/amd-iommu: Fix deassignment of a device from the pt_domain
[Posted February 21, 2010 by corbet]
| From: |
| Greg KH <gregkh-AT-suse.de> |
| To: |
| linux-kernel-AT-vger.kernel.org, stable-AT-kernel.org, Greg KH <greg-AT-kroah.com> |
| Subject: |
| [72/93] x86/amd-iommu: Fix deassignment of a device from the pt_domain |
| Date: |
| Fri, 19 Feb 2010 08:30:05 -0800 |
| Cc: |
| stable-review-AT-kernel.org, torvalds-AT-linux-foundation.org,
akpm-AT-linux-foundation.org, alan-AT-lxorguk.ukuu.org.uk,
Joerg Roedel <joerg.roedel-AT-amd.com> |
| Archive-link: |
| Article, Thread
|
2.6.32-stable review patch. If anyone has any objections, please let us know.
------------------
From: Joerg Roedel <joerg.roedel@amd.com>
commit d3ad9373b7c29b63d5e8460a69453718d200cc3b 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>
---
arch/x86/kernel/amd_iommu.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/arch/x86/kernel/amd_iommu.c
+++ b/arch/x86/kernel/amd_iommu.c
@@ -1230,9 +1230,10 @@ static void __detach_device(struct prote
/*
* 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);
}
(
Log in to post comments)