diff options
| author | 2018-08-15 14:59:03 -0500 | |
|---|---|---|
| committer | 2018-08-15 14:59:03 -0500 | |
| commit | e7aaf90f9d9dbbba54f67c653a1c56c2bf117268 (patch) | |
| tree | 9f00f8d19ad3b4e0432b239c782410a5c7968c4c /drivers/pci/pci.c | |
| parent | Merge branch 'pci/resource' (diff) | |
| parent | PCI: Expand documentation for pci_add_dma_alias() (diff) | |
| download | linux-dev-e7aaf90f9d9dbbba54f67c653a1c56c2bf117268.tar.xz linux-dev-e7aaf90f9d9dbbba54f67c653a1c56c2bf117268.zip | |
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) { |
