iommu/amd: Make sure IOMMU is not considered to translate itself
authorJoerg Roedel <joerg.roedel@amd.com>
Thu, 21 Jun 2012 14:51:25 +0000 (16:51 +0200)
committerJoerg Roedel <joerg.roedel@amd.com>
Fri, 28 Sep 2012 15:33:28 +0000 (17:33 +0200)
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.roedel@amd.com>
drivers/iommu/amd_iommu_init.c

index 8a7f197..68b3305 100644 (file)
@@ -1021,6 +1021,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;