]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
PCI: Add DMA alias quirk for Adaptec 3405
authorAlex Williamson <alex.williamson@redhat.com>
Tue, 13 Jan 2015 18:26:50 +0000 (11:26 -0700)
committerBjorn Helgaas <bhelgaas@google.com>
Fri, 23 Jan 2015 21:44:45 +0000 (15:44 -0600)
commitd3d2ab43ddae5f958461ac0a9a2b484a68194df5
tree60910830d853171b5511653903c53559b9ba768d
parent6a3763d1734bf133330dc8e246bf794b9e360e8a
PCI: Add DMA alias quirk for Adaptec 3405

The Adaptec 3405 is actually an Intel 80333 I/O processor where the exposed
device at 0e.0 is actually the address translation unit of the I/O
processor and a hidden, private device at 01.0 masters the DMA for the
device.  Create a fixed alias between the exposed and hidden devfn so we
can enable the IOMMU.

Scenarios like this are potentially likely for any device incorporating
this I/O processor, so this little bit of abstraction with the fixed alias
table should make future additions trivial.

Without this fix, booting a system with the Intel IOMMU enabled and an
Adaptec 3405 at 02:0e.0 results in a flood of errors like this:

  dmar: DRHD: handling fault status reg 3
  dmar: DMAR:[DMA Write] Request device [02:01.0] fault addr ffbff000
  DMAR:[fault reason 02] Present bit in context entry is clear

[bhelgaas: changelog, comment]
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
CC: Adaptec OEM Raid Solutions <aacraid@adaptec.com>
drivers/pci/quirks.c