lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.16 0074/1039] PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
    Date
    From: Yifeng Li <tomli@tomli.me>

    commit e445375882883f69018aa669b67cbb37ec873406 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>
    ---
    drivers/pci/quirks.c | 3 +++
    1 file changed, 3 insertions(+)

    --- a/drivers/pci/quirks.c
    +++ b/drivers/pci/quirks.c
    @@ -4103,6 +4103,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_M
    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 */

    \
     
     \ /
      Last update: 2022-01-25 01:11    [W:2.699 / U:2.464 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site