]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
PCI/AER: Support errors introduced by PCIe r6.0
authorLukas Wunner <lukas@wunner.de>
Wed, 27 Aug 2025 13:41:09 +0000 (15:41 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 19 Oct 2025 14:21:48 +0000 (16:21 +0200)
commit 6633875250b38b18b8638cf01e695de031c71f02 upstream.

PCIe r6.0 defined five additional errors in the Uncorrectable Error
Status, Mask and Severity Registers (PCIe r7.0 sec 7.8.4.2ff).

lspci has been supporting them since commit 144b0911cc0b ("ls-ecaps:
extend decode support for more fields for AER CE and UE status"):

  https://git.kernel.org/pub/scm/utils/pciutils/pciutils.git/commit/?id=144b0911cc0b

Amend the AER driver to recognize them as well, instead of logging them as
"Unknown Error Bit".

Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/21f1875b18d4078c99353378f37dcd6b994f6d4e.1756301211.git.lukas@wunner.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/pci/pcie/aer.c

index 2908bfda88804eda46d46ebf0c0648b3d8c92f29..81ea196ce843e39639d6a1c6e13708b281f87c09 100644 (file)
@@ -37,7 +37,7 @@
 #define AER_ERROR_SOURCES_MAX          128
 
 #define AER_MAX_TYPEOF_COR_ERRS                16      /* as per PCI_ERR_COR_STATUS */
-#define AER_MAX_TYPEOF_UNCOR_ERRS      27      /* as per PCI_ERR_UNCOR_STATUS*/
+#define AER_MAX_TYPEOF_UNCOR_ERRS      32      /* as per PCI_ERR_UNCOR_STATUS*/
 
 struct aer_err_source {
        unsigned int status;
@@ -513,11 +513,11 @@ static const char *aer_uncorrectable_error_string[] = {
        "AtomicOpBlocked",              /* Bit Position 24      */
        "TLPBlockedErr",                /* Bit Position 25      */
        "PoisonTLPBlocked",             /* Bit Position 26      */
-       NULL,                           /* Bit Position 27      */
-       NULL,                           /* Bit Position 28      */
-       NULL,                           /* Bit Position 29      */
-       NULL,                           /* Bit Position 30      */
-       NULL,                           /* Bit Position 31      */
+       "DMWrReqBlocked",               /* Bit Position 27      */
+       "IDECheck",                     /* Bit Position 28      */
+       "MisIDETLP",                    /* Bit Position 29      */
+       "PCRC_CHECK",                   /* Bit Position 30      */
+       "TLPXlatBlocked",               /* Bit Position 31      */
 };
 
 static const char *aer_agent_string[] = {