diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2018-08-15 14:59:03 -0500 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2018-08-15 14:59:03 -0500 |
commit | e7aaf90f9d9dbbba54f67c653a1c56c2bf117268 (patch) | |
tree | 9f00f8d19ad3b4e0432b239c782410a5c7968c4c /drivers/pci/pci.c | |
parent | 5fc054a54476f9e2b3d6cc3eeb1537aa549d0ba3 (diff) | |
parent | f778a0d26fe3912424401e7b997155094de36487 (diff) | |
download | linux-e7aaf90f9d9dbbba54f67c653a1c56c2bf117268.tar.bz2 |
Merge branch 'pci/switchtec'
- Add DMA alias quirk for Microsemi Switchtec NTB (Doug Meyer)
- Expand documentation for pci_add_dma_alias() (Logan Gunthorpe)
* pci/switchtec:
PCI: Expand documentation for pci_add_dma_alias()
PCI: Add DMA alias quirk for Microsemi Switchtec NTB
switchtec: Use generic PCI Vendor ID and Class Code
# Conflicts:
# drivers/pci/quirks.c
Diffstat (limited to 'drivers/pci/pci.c')
-rw-r--r-- | drivers/pci/pci.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index e6f7ba4378ba..77960fe9d9f3 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -5710,8 +5710,19 @@ int pci_set_vga_state(struct pci_dev *dev, bool decode, * @dev: the PCI device for which alias is added * @devfn: alias slot and function * - * This helper encodes 8-bit devfn as bit number in dma_alias_mask. - * It should be called early, preferably as PCI fixup header quirk. + * This helper encodes an 8-bit devfn as a bit number in dma_alias_mask + * which is used to program permissible bus-devfn source addresses for DMA + * requests in an IOMMU. These aliases factor into IOMMU group creation + * and are useful for devices generating DMA requests beyond or different + * from their logical bus-devfn. Examples include device quirks where the + * device simply uses the wrong devfn, as well as non-transparent bridges + * where the alias may be a proxy for devices in another domain. + * + * IOMMU group creation is performed during device discovery or addition, + * prior to any potential DMA mapping and therefore prior to driver probing + * (especially for userspace assigned devices where IOMMU group definition + * cannot be left as a userspace activity). DMA aliases should therefore + * be configured via quirks, such as the PCI fixup header quirk. */ void pci_add_dma_alias(struct pci_dev *dev, u8 devfn) { |