diff options
author | Joerg Roedel <joerg.roedel@amd.com> | 2012-06-21 16:51:25 +0200 |
---|---|---|
committer | Joerg Roedel <joerg.roedel@amd.com> | 2012-09-28 17:33:28 +0200 |
commit | f6fec00a9202987f1be2ae0a722518b742a9a799 (patch) | |
tree | 53f05eb432b897f4cd189731749b97ff3a67108b | |
parent | 33f28c59e18d83fd2aeef258d211be66b9b80eb3 (diff) | |
download | linux-3.10-f6fec00a9202987f1be2ae0a722518b742a9a799.tar.gz linux-3.10-f6fec00a9202987f1be2ae0a722518b742a9a799.tar.bz2 linux-3.10-f6fec00a9202987f1be2ae0a722518b742a9a799.zip |
iommu/amd: Make sure IOMMU is not considered to translate itself
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>
-rw-r--r-- | drivers/iommu/amd_iommu_init.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c index 8a7f1971d63..68b3305a126 100644 --- a/drivers/iommu/amd_iommu_init.c +++ b/drivers/iommu/amd_iommu_init.c @@ -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; |