blob: 3eef767206fd4721df8a0f0908058fab0a74dfe9 [file] [log] [blame]
From joerg.roedel@amd.com Wed Jun 23 13:58:22 2010
From: Joerg Roedel <joerg.roedel@amd.com>
Date: Tue, 1 Jun 2010 11:41:44 +0200
Subject: x86/amd-iommu: Fix suspend/resume with IOMMU
To: Greg KH <gregkh@suse.de>
Cc: stable@kernel.org, iommu@lists.linux-foundation.org
Message-ID: <20100601094143.GA20522@amd.com>
From: Joerg Roedel <joerg.roedel@amd.com>
This is a suspend resume fix for 2.6.32-stable inclusion. The
problem with this patch is that it is not upstream because the code
changed with 2.6.33 and the function where this bug is in was
removed. So this fix does not make sense anymore for anything later than
2.6.32. The patch was tested by multiple partys and is confirmed to fix
the broken suspend/resume issue with the 2.6.32 kernel.
This patch fixes suspend/resume with AMD IOMMU enabled.
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
arch/x86/kernel/amd_iommu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/arch/x86/kernel/amd_iommu.c
+++ b/arch/x86/kernel/amd_iommu.c
@@ -544,7 +544,7 @@ static void flush_devices_by_domain(stru
for (i = 0; i <= amd_iommu_last_bdf; ++i) {
if ((domain == NULL && amd_iommu_pd_table[i] == NULL) ||
- (amd_iommu_pd_table[i] != domain))
+ (domain != NULL && amd_iommu_pd_table[i] != domain))
continue;
iommu = amd_iommu_rlookup_table[i];