Running scanpci -vO on an x86 pciex system with an intel quad ethenet card we get the occasional panic "pcie_pci-1: PCI(-X) Express Fatal Error".
This is happening due to us seeing a "UR" in the AER Uncorrectable status register, but no corresponding CE bit in the Device Status register.
This appears to be caused by a race condition between scanpci causing URs on the differerent ethernet ports at the same time, while the kernel MSI interrupt handler is reading/clearing the error bits. The result is that the fma code partially clears the registers for the second device while handling the error on the first device, then gets an incomplete set of data when subsequently handling the error on the second device.
We can't avoid the race, but it looks like the check for the CE bit being present is unnecessary anyway - we shouldn't panic if CE is not present (only if NFE *is* preesent).