Messages in this thread Patch in this message | | | From | Joerg Roedel <> | Subject | [PATCH 18/28] iommu/amd: Make sure IOMMU is not considered to translate itself | Date | Thu, 5 Jul 2012 14:36:38 +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 | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c index 453f80a..c487822 100644 --- a/drivers/iommu/amd_iommu_init.c +++ b/drivers/iommu/amd_iommu_init.c @@ -1023,6 +1023,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
| |