1
0
Fork 0
alistair23-linux/drivers/iommu
Logan Gunthorpe b02b0a6bcc iommu/amd: Support multiple PCI DMA aliases in IRQ Remapping
[ Upstream commit 3c124435e8 ]

Non-Transparent Bridge (NTB) devices (among others) may have many DMA
aliases seeing the hardware will send requests with different device ids
depending on their origin across the bridged hardware.

See commit ad281ecf1c ("PCI: Add DMA alias quirk for Microsemi Switchtec
NTB") for more information on this.

The AMD IOMMU IRQ remapping functionality ignores all PCI aliases for
IRQs so if devices send an interrupt from one of their aliases they
will be blocked on AMD hardware with the IOMMU enabled.

To fix this, ensure IRQ remapping is enabled for all aliases with
MSI interrupts.

This is analogous to the functionality added to the Intel IRQ remapping
code in commit 3f0c625c6a ("iommu/vt-d: Allow interrupts from the entire
bus for aliased devices")

Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-02-01 09:34:48 +00:00
..
Kconfig
Makefile
amd_iommu.c iommu/amd: Support multiple PCI DMA aliases in IRQ Remapping 2020-02-01 09:34:48 +00:00
amd_iommu.h
amd_iommu_debugfs.c
amd_iommu_init.c iommu/amd: Fix IOMMU perf counter clobbering during init 2020-01-29 16:45:29 +01:00
amd_iommu_proto.h
amd_iommu_quirks.c iommu/amd: Apply the same IVRS IOAPIC workaround to Acer Aspire A315-41 2019-10-30 10:24:03 +01:00
amd_iommu_types.h iommu/amd: Support multiple PCI DMA aliases in device table 2020-02-01 09:34:48 +00:00
amd_iommu_v2.c
arm-smmu-impl.c
arm-smmu-v3.c iommu/arm-smmu-v3: Don't display an error when IRQ lines are missing 2020-01-04 19:17:25 +01:00
arm-smmu.c
arm-smmu.h
dma-iommu.c iommu/dma: fix variable 'cookie' set but not used 2020-02-01 09:34:45 +00:00
dmar.c
exynos-iommu.c
fsl_pamu.c
fsl_pamu.h
fsl_pamu_domain.c
fsl_pamu_domain.h
hyperv-iommu.c
intel-iommu-debugfs.c
intel-iommu.c iommu/vt-d: Call __dmar_remove_one_dev_info with valid pointer 2020-01-29 16:45:27 +01:00
intel-pasid.c
intel-pasid.h
intel-svm.c iommu/vt-d: Remove incorrect PSI capability check 2020-01-09 10:20:02 +01:00
intel-trace.c
intel_irq_remapping.c
io-pgtable-arm-v7s.c
io-pgtable-arm.c
io-pgtable.c
iommu-debugfs.c
iommu-sysfs.c
iommu-traces.c
iommu.c iommu: Remove device link to group on failure 2020-01-17 19:48:20 +01:00
iova.c iommu/iova: Init the struct iova to fix the possible memleak 2020-01-12 12:21:35 +01:00
ipmmu-vmsa.c
irq_remapping.c
irq_remapping.h
msm_iommu.c
msm_iommu.h
msm_iommu_hw-8xxx.h
mtk_iommu.c iommu/mediatek: Add a new tlb_lock for tlb_flush 2020-01-17 19:48:59 +01:00
mtk_iommu.h iommu/mediatek: Add a new tlb_lock for tlb_flush 2020-01-17 19:48:59 +01:00
mtk_iommu_v1.c
of_iommu.c
omap-iommu-debug.c
omap-iommu.c
omap-iommu.h
omap-iopgtable.h
qcom_iommu.c
rockchip-iommu.c iommu: rockchip: Free domain on .domain_free 2020-01-04 19:16:38 +01:00
s390-iommu.c
tegra-gart.c
tegra-smmu.c iommu/tegra-smmu: Fix page tables in > 4 GiB memory 2020-01-04 19:16:39 +01:00
virtio-iommu.c