]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
PCI/AER: Add message when AER_MAX_MULTI_ERR_DEVICES limit is hit
authorAkshay Jindal <akshayaj.lkd@gmail.com>
Thu, 19 Jun 2025 18:50:30 +0000 (00:20 +0530)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 26 Jun 2025 20:34:22 +0000 (15:34 -0500)
When a PCIe device detects an error, it logs the error locally and issues
an error Message routed to the Root Complex (PCIe r6.0, sec 6.2.5). If the
Root Port or RCEC supports AER and Linux has enabled the AER interrupt,
aer_isr() traverses the relevant devices and adds those with AER errors
logged to the aer_err_info.dev[] array for error logging and recovery.

If aer_isr() finds more than AER_MAX_MULTI_ERR_DEVICES devices with AER
errors logged, it silently ignores them, and those extra devices are not
included in the recovery flow.

Emit an error message if we find more than AER_MAX_MULTI_ERR_DEVICES
devices with AER errors logged.

Testing details at link below.

Signed-off-by: Akshay Jindal <akshayaj.lkd@gmail.com>
[bhelgaas: commit log, join error message]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20250619185041.73240-1-akshayaj.lkd@gmail.com
drivers/pci/pcie/aer.c

index 361957502831927b74ff23c5ace25cb2305ea522..e286c197d7167af3952e23a28006926d32f445e1 100644 (file)
@@ -1039,7 +1039,8 @@ static int find_device_iter(struct pci_dev *dev, void *data)
                /* List this device */
                if (add_error_device(e_info, dev)) {
                        /* We cannot handle more... Stop iteration */
-                       /* TODO: Should print error message here? */
+                       pci_err(dev, "Exceeded max supported (%d) devices with errors logged\n",
+                               AER_MAX_MULTI_ERR_DEVICES);
                        return 1;
                }