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 <[email protected]>
Cc: [email protected]
---
Last amendment of aer_uncorrectable_error_string[] was in 2019 for an
error introduced in PCIe r3.1, see commit 6458b438ebc1 ("PCI/AER: Add
PoisonTLPBlocked to Uncorrectable error counters").

 drivers/pci/pcie/aer.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
index e286c19..15ed541 100644
--- a/drivers/pci/pcie/aer.c
+++ b/drivers/pci/pcie/aer.c
@@ -43,7 +43,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 {
        u32 status;                     /* PCI_ERR_ROOT_STATUS */
@@ -525,11 +525,11 @@ void pci_aer_exit(struct pci_dev *dev)
        "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[] = {
-- 
2.47.2


Reply via email to