| 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]; |