diff options
author | Joerg Roedel <joerg.roedel@amd.com> | 2009-10-09 18:31:20 +0200 |
---|---|---|
committer | Joerg Roedel <joerg.roedel@amd.com> | 2009-10-09 18:37:46 +0200 |
commit | c5cca146aa03e1f60fb179df65f0dbaf17bc64ed (patch) | |
tree | 457cdf7d8b3a12f58328d06a2bfd8665b395b9ba /arch/x86/kernel/amd_iommu.c | |
parent | c7084b35eb1a4d3353a501508baf9d3d82822c93 (diff) |
x86/amd-iommu: Workaround for erratum 63
There is an erratum for IOMMU hardware which documents
undefined behavior when forwarding SMI requests from
peripherals and the DTE of that peripheral has a sysmgt
value of 01b. This problem caused weird IO_PAGE_FAULTS in my
case.
This patch implements the suggested workaround for that
erratum into the AMD IOMMU driver. The erratum is
documented with number 63.
Cc: stable@kernel.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, 2 insertions, 0 deletions
diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c index 6c99f503780..f95dfe52644 100644 --- a/arch/x86/kernel/amd_iommu.c +++ b/arch/x86/kernel/amd_iommu.c @@ -1114,6 +1114,8 @@ static void __detach_device(struct protection_domain *domain, u16 devid) amd_iommu_dev_table[devid].data[1] = 0; amd_iommu_dev_table[devid].data[2] = 0; + amd_iommu_apply_erratum_63(devid); + /* decrease reference counter */ domain->dev_cnt -= 1; |