Question about AER in latest kernels (text format)
Amori, Alberto
Alberto.Amori at duagon.com
Tue Aug 20 17:54:19 AEST 2024
Good morning Mr. Helgas,
Sorry if I am not posting my question through the proper channel, but I am not so familiar with that.
I have noticed that the Kernel API pci_enable_pcie_error_reporting() has been removed from kernel 6.6
https://lore.kernel.org/all/20230710232136.233034-3-helgaas@kernel.org/
"pci_enable_pcie_error_reporting() is used only inside aer.c. Stop exposing it outside the file."
This caused a build error in our PCIe driver after upgrading the kernel and I fixed it adding a pre-processor check:
#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 6, 0)
result = pci_enable_pcie_error_reporting(dev);
if(result) {
err(" Unable to enable PCIe error reporting");
printk(KERN_WARNING "dg pci_enable_pcie_error_reporting returned %d (ignoring)\n", result);
}
#else
printk(KERN_WARNING "pci_enable_pcie_error_reporting is not available in this kernel version\n");
#endif
In the newer kernel docs (see https://www.kernel.org/doc/html/v6.5/PCI/pcieaer-howto.html) this paragraph has been removed:
"8.3.3. helper functions
int pci_enable_pcie_error_reporting(struct pci_dev *dev);
pci_enable_pcie_error_reporting enables the device to send error messages to root port when an error is detected. Note that devices don't enable the error reporting by default, so device drivers need call this function to enable it."
I guess that with the new kernels the AER is implicitly enabled when installing the device (e.g. when pci_device_add is called), but can you confirm this?
Or maybe the call of pci_enable_pcie_error_reporting() was superfluous also in the kernels < 6.6?
Thank you in advance
Best regards
Alberto Amori
Senior Embedded Software Engineer
Phone +41 44 743 73 94
duagon AG I Riedstrasse 12 I 8953 Dietikon I Switzerland I www.duagon.com
More information about the Linuxppc-dev
mailing list