lkml.org 
[lkml]   [2021]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 116/217] PCI: Restrict ASMedia ASM1062 SATA Max Payload Size Supported
    Date
    From: Marek Behún <kabel@kernel.org>

    commit b12d93e9958e028856cbcb061b6e64728ca07755 upstream.

    The ASMedia ASM1062 SATA controller advertises Max_Payload_Size_Supported
    of 512, but in fact it cannot handle incoming TLPs with payload size of
    512.

    We discovered this issue on PCIe controllers capable of MPS = 512 (Aardvark
    and DesignWare), where the issue presents itself as an External Abort.
    Bjorn Helgaas says:

    Probably ASM1062 reports a Malformed TLP error when it receives a data
    payload of 512 bytes, and Aardvark, DesignWare, etc convert this to an
    arm64 External Abort. [1]

    To avoid this problem, limit the ASM1062 Max Payload Size Supported to 256
    bytes, so we set the Max Payload Size of devices that may send TLPs to the
    ASM1062 to 256 or less.

    [1] https://lore.kernel.org/linux-pci/20210601170907.GA1949035@bjorn-Precision-5520/
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=212695
    Link: https://lore.kernel.org/r/20210624171418.27194-2-kabel@kernel.org
    Reported-by: Rötti <espressobinboardarmbiantempmailaddress@posteo.de>
    Signed-off-by: Marek Behún <kabel@kernel.org>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: Krzysztof Wilczyński <kw@linux.com>
    Reviewed-by: Pali Rohár <pali@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/pci/quirks.c | 1 +
    1 file changed, 1 insertion(+)

    --- a/drivers/pci/quirks.c
    +++ b/drivers/pci/quirks.c
    @@ -3040,6 +3040,7 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SO
    PCI_DEVICE_ID_SOLARFLARE_SFC4000A_1, fixup_mpss_256);
    DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SOLARFLARE,
    PCI_DEVICE_ID_SOLARFLARE_SFC4000B, fixup_mpss_256);
    +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ASMEDIA, 0x0612, fixup_mpss_256);

    /* Intel 5000 and 5100 Memory controllers have an errata with read completion
    * coalescing (which is enabled by default on some BIOSes) and MPS of 256B.

    \
     
     \ /
      Last update: 2021-09-20 19:37    [W:4.049 / U:0.100 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site