diff options
author | Jiang Liu <jiang.liu@linux.intel.com> | 2015-10-09 10:07:31 -0400 |
---|---|---|
committer | Joerg Roedel <jroedel@suse.de> | 2015-10-09 11:47:15 -0400 |
commit | cbbc00be2ce3af5d708226a9563fa27cb4e6b6b8 (patch) | |
tree | cc1908ceb397628d901d1eb1c56026e456eceb82 /drivers/iommu/amd_iommu_init.c | |
parent | 02685b1df0461ce4c23d263b66ea0aac66450d13 (diff) |
iommu/amd: Prevent binding other PCI drivers to IOMMU PCI devices
AMD IOMMU driver makes use of IOMMU PCI devices, so prevent binding other
PCI drivers to IOMMU PCI devices.
This fixes a bug reported by Boris that system suspend/resume gets broken
on AMD platforms. For more information, please refer to:
https://lkml.org/lkml/2015/9/26/89
Fixes: 991de2e59090 ("PCI, x86: Implement pcibios_alloc_irq() and pcibios_free_irq()")
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Cc: Borislav Petkov <bp@alien8.de>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'drivers/iommu/amd_iommu_init.c')
-rw-r--r-- | drivers/iommu/amd_iommu_init.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c index 5ef347a13cb5..1b066e7d144d 100644 --- a/drivers/iommu/amd_iommu_init.c +++ b/drivers/iommu/amd_iommu_init.c | |||
@@ -1256,6 +1256,9 @@ static int iommu_init_pci(struct amd_iommu *iommu) | |||
1256 | if (!iommu->dev) | 1256 | if (!iommu->dev) |
1257 | return -ENODEV; | 1257 | return -ENODEV; |
1258 | 1258 | ||
1259 | /* Prevent binding other PCI device drivers to IOMMU devices */ | ||
1260 | iommu->dev->match_driver = false; | ||
1261 | |||
1259 | pci_read_config_dword(iommu->dev, cap_ptr + MMIO_CAP_HDR_OFFSET, | 1262 | pci_read_config_dword(iommu->dev, cap_ptr + MMIO_CAP_HDR_OFFSET, |
1260 | &iommu->cap); | 1263 | &iommu->cap); |
1261 | pci_read_config_dword(iommu->dev, cap_ptr + MMIO_RANGE_OFFSET, | 1264 | pci_read_config_dword(iommu->dev, cap_ptr + MMIO_RANGE_OFFSET, |