Re: [PATCH v3 RESEND] PCI: Add func1 DMA quirk for Marvell 88SE9125 SATA controller

From: Bjorn Helgaas
Date: Wed Dec 15 2021 - 15:36:36 EST


On Thu, Dec 02, 2021 at 06:35:21AM +0000, Yifeng Li wrote:
> 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. This patch adds its device ID 0x9125 to the
> Function 1 DMA alias quirk list.
>
> This patch should not be confused with an earlier patch, commit 059983790a4c
> ("PCI: Add function 1 DMA alias quirk for Marvell 9215 SATA controller"),
> which applies to a different chip with a similar model number, 88SE9215.
>
> 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
>
> Cc: stable@xxxxxxxxxxxxxxx
> Reported-by: Sam Bingner <sam@xxxxxxxxxxx>
> Tested-by: Sam Bingner <sam@xxxxxxxxxxx>
> Tested-by: Yifeng Li <tomli@xxxxxxxx>
> Signed-off-by: Yifeng Li <tomli@xxxxxxxx>
> Reviewed-by: Krzysztof Wilczyński <kw@xxxxxxxxx>

I tweaked the subject line to match similar previous commits and
applied to pci/virtualization for v5.17, thanks!

e44537588288 ("PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller")
059983790a4c ("PCI: Add function 1 DMA alias quirk for Marvell 9215 SATA controller")
9cde402a5977 ("PCI: Add function 1 DMA alias quirk for Marvell 9170 SATA controller")
7695e73f3db4 ("PCI: Add function 1 DMA alias quirk for Marvell 88SS9183")
1903be8222b7 ("PCI: Add function 1 DMA alias quirk for Highpoint RocketRAID 644L")
832e4e1f76b8 ("PCI: Add function 1 DMA alias quirk for Marvell 88SE9220")
aa0082066343 ("PCI: Add function 1 DMA alias quirk for Marvell 9128")
00456b35a527 ("PCI: Add function 1 DMA alias quirk for Marvell 88SE9182")

> ---
>
> Notes:
> v3: Use full names in Reported-by and Tested-by tags.
>
> v2: I accidentally sent an earlier version of the commit without
> CCing stable@xxxxxxxxxxxxxxx. The mail itself was also rejected by
> many servers due to a DKIM issue. Thus [PATCH v2], sorry for the
> noise.
>
> drivers/pci/quirks.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index 003950c73..20a932690 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -4103,6 +4103,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9120,
> quirk_dma_func1_alias);
> DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9123,
> quirk_dma_func1_alias);
> +/* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c136 */
> +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9125,
> + quirk_dma_func1_alias);
> DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9128,
> quirk_dma_func1_alias);
> /* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c14 */
> --
> 2.31.1