浏览代码

iommu/amd: Work around broken IVRS tables

On some systems the IVRS table does not contain all PCI
devices present in the system. In case a device not present
in the IVRS table is translated by the IOMMU no DMA is
possible from that device by default.
This patch fixes this by removing the DTE entry for every
PCI device present in the system and not covered by IVRS.

Cc: stable@vger.kernel.org # >= 3.0
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Joerg Roedel 13 年之前
父节点
当前提交
af1be04901
共有 1 个文件被更改,包括 3 次插入0 次删除
  1. 3 0
      drivers/iommu/amd_iommu.c

+ 3 - 0
drivers/iommu/amd_iommu.c

@@ -2863,6 +2863,9 @@ static unsigned device_dma_ops_init(void)
 
 	for_each_pci_dev(pdev) {
 		if (!check_device(&pdev->dev)) {
+
+			iommu_ignore_device(&pdev->dev);
+
 			unhandled += 1;
 			continue;
 		}