]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit - include/linux/pci.h
PCI: Add device flag PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT
authorJayachandran C <jnair@caviumnetworks.com>
Thu, 13 Apr 2017 20:30:44 +0000 (20:30 +0000)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 13 Apr 2017 23:49:50 +0000 (18:49 -0500)
commitffff885832101543c002cef7abcab0fd27a9aee1
treef2f14679807c6791c7dde4db129e7e7cd72e977f
parentb77d537d00d08fcf0bf641cd3491dd7df0ad1475
PCI: Add device flag PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT

Add a new quirk flag PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT to limit the DMA alias
search to go no further than the bridge where the IOMMU unit is attached.

The flag will be used to indicate a bridge device which forwards the
address translation requests to the IOMMU, i.e., where the interrupt and
DMA requests leave the PCIe hierarchy and go into the system blocks.

Usually this happens at the PCI RC, so this flag is not needed.  But on
systems where there are bridges that introduce aliases above the IOMMU,
this flag prevents pci_for_each_dma_alias() from generating aliases that
the IOMMU will never see.

The function pci_for_each_dma_alias() is updated to stop when it see a
bridge with this flag set.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=195447
Signed-off-by: Jayachandran C <jnair@caviumnetworks.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Acked-by: David Daney <david.daney@cavium.com>
drivers/pci/search.c
include/linux/pci.h