linux-stable/drivers/pci
Yifeng Li c4212d52f9 PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
commit e445375882 upstream.

Like other SATA controller chips in the Marvell 88SE91xx series, the
Marvell 88SE9125 has the same DMA requester ID hardware bug that prevents
it from working under IOMMU.  Add it to the list of devices that need the
quirk.

Without this patch, device initialization fails with DMA errors:

  ata8: softreset failed (1st FIS failed)
  DMAR: DRHD: handling fault status reg 2
  DMAR: [DMA Write NO_PASID] Request device [03:00.1] fault addr 0xfffc0000 [fault reason 0x02] Present bit in context entry is clear
  DMAR: DRHD: handling fault status reg 2
  DMAR: [DMA Read NO_PASID] Request device [03:00.1] fault addr 0xfffc0000 [fault reason 0x02] Present bit in context entry is clear

After applying the patch, the controller can be successfully initialized:

  ata8: SATA link up 1.5 Gbps (SStatus 113 SControl 330)
  ata8.00: ATAPI: PIONEER BD-RW   BDR-207M, 1.21, max UDMA/100
  ata8.00: configured for UDMA/100
  scsi 7:0:0:0: CD-ROM            PIONEER  BD-RW   BDR-207M 1.21 PQ: 0 ANSI: 5

Link: https://lore.kernel.org/r/YahpKVR+McJVDdkD@work
Reported-by: Sam Bingner <sam@bingner.com>
Tested-by: Sam Bingner <sam@bingner.com>
Tested-by: Yifeng Li <tomli@tomli.me>
Signed-off-by: Yifeng Li <tomli@tomli.me>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Krzysztof Wilczyński <kw@linux.com>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-01-27 09:19:28 +01:00
..
controller PCI: aardvark: Fix support for PCI_BRIDGE_CTL_BUS_RESET on emulated bridge 2021-12-01 09:23:31 +01:00
endpoint PCI: endpoint: Fix missing destroy_workqueue() 2021-05-19 10:08:25 +02:00
hotplug PCI: ibmphp: Fix double unmap of io_mem 2021-09-22 12:26:44 +02:00
pcie PCI/portdrv: Enable Bandwidth Notification only if port supports it 2021-09-22 12:26:22 +02:00
switch
access.c PCI: Fix pci_cfg_wait queue locking problem 2020-08-19 08:16:11 +02:00
ats.c
bus.c PCI: Add device even if driver attach failed 2020-08-21 13:05:20 +02:00
ecam.c PCI/ACPI: Add Ampere Altra SOC MCFG quirk 2021-09-26 14:07:05 +02:00
host-bridge.c
iov.c PCI/IOV: Mark VFs as not implementing PCI_COMMAND_MEMORY 2020-10-29 09:57:54 +01:00
irq.c
Kconfig
Makefile
mmap.c
msi.c PCI/MSI: Mask MSI-X vectors only on success 2021-12-22 09:29:38 +01:00
of.c
p2pdma.c PCI/P2PDMA: Avoid pci_get_slot(), which may sleep 2021-07-20 16:10:47 +02:00
pci-acpi.c PM: ACPI: PCI: Drop acpi_pm_set_bridge_wakeup() 2020-12-30 11:51:32 +01:00
pci-bridge-emul.c PCI: pci-bridge-emul: Fix array overruns, improve safety 2021-12-01 09:23:30 +01:00
pci-bridge-emul.h PCI: pci-bridge-emul: Add PCIe Root Capabilities Register 2021-09-26 14:07:04 +02:00
pci-driver.c
pci-label.c PCI/sysfs: Fix dsm_label_utf16s_to_utf8s() buffer overrun 2021-07-20 16:10:49 +02:00
pci-mid.c
pci-pf-stub.c
pci-stub.c
pci-sysfs.c
pci.c PCI: Fix pci_dev_str_match_path() alloc while atomic bug 2021-09-22 12:26:44 +02:00
pci.h PCI: thunder: Fix compile testing 2021-05-22 11:38:28 +02:00
probe.c PCI: Fix pci_host_bridge struct device release/free handling 2021-10-06 15:42:38 +02:00
proc.c
quirks.c PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller 2022-01-27 09:19:28 +01:00
remove.c PCI: Fix pci_host_bridge struct device release/free handling 2021-10-06 15:42:38 +02:00
rom.c PCI: Use ioremap(), not phys_to_virt() for platform ROM 2020-10-01 13:17:51 +02:00
search.c
setup-bus.c PCI: Avoid double hpmemsize MMIO window assignment 2020-10-01 13:17:19 +02:00
setup-irq.c
setup-res.c PCI: Decline to resize resources if boot config must be preserved 2021-03-04 10:26:10 +01:00
slot.c PCI: Fix pci_slot_release() NULL pointer dereference 2020-12-30 11:51:47 +01:00
syscall.c PCI: Return ~0 data on pciconfig_read() CAP_SYS_ADMIN failure 2021-09-22 12:26:22 +02:00
vc.c
vpd.c PCI: Allow VPD access for QLogic ISP2722 2021-05-14 09:44:12 +02:00
xen-pcifront.c