The IVRS table usually includes the IOMMU device. But the
IOMMU does never translate itself, so make sure the IOMMU
driver knows this.

Signed-off-by: Joerg Roedel <joerg.roe...@amd.com>
---
 drivers/iommu/amd_iommu_init.c |    7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
index 8e9d71c..202b2b7 100644
--- a/drivers/iommu/amd_iommu_init.c
+++ b/drivers/iommu/amd_iommu_init.c
@@ -1018,6 +1018,13 @@ static int __init init_iommu_one(struct amd_iommu 
*iommu, struct ivhd_header *h)
        ret = init_iommu_from_acpi(iommu, h);
        if (ret)
                return ret;
+
+       /*
+        * Make sure IOMMU is not considered to translate itself. The IVRS
+        * table tells us so, but this is a lie!
+        */
+       amd_iommu_rlookup_table[iommu->devid] = NULL;
+
        init_iommu_devices(iommu);
 
        return 0;
-- 
1.7.9.5


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to