• A
    PCI: Add DMA alias quirk for Adaptec 3405 · d3d2ab43
    Alex Williamson 提交于
    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: NAlex Williamson <alex.williamson@redhat.com>
    Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
    CC: Adaptec OEM Raid Solutions <aacraid@adaptec.com>
    d3d2ab43
quirks.c 136.3 KB