PCI/AER: Decode Requester ID when no error info found
authorBjorn Helgaas <bhelgaas@google.com>
Wed, 6 Dec 2023 22:42:30 +0000 (16:42 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 2 Jan 2024 22:51:27 +0000 (16:51 -0600)
commit1291b716bbf969e101d517bfb8ba18d958f758b8
treead5a5e9bb1d76af7b533b77f92321e58323cdb95
parent02a06f5f1a6aa2e12b2046b51ed3462c2c340037
PCI/AER: Decode Requester ID when no error info found

When a device with AER detects an error, it logs error information in its
own AER Error Status registers.  It may send an Error Message to the Root
Port (RCEC in the case of an RCiEP), which logs the fact that an Error
Message was received (Root Error Status) and the Requester ID of the
message source (Error Source Identification).

aer_print_port_info() prints the Requester ID from the Root Port Error
Source in the usual Linux "bb:dd.f" format, but when find_source_device()
finds no error details in the hierarchy below the Root Port, it printed the
raw Requester ID without decoding it.

Decode the Requester ID in the usual Linux format so it matches other
messages.

Sample message changes:

  - pcieport 0000:00:1c.5: AER: Correctable error received: 0000:00:1c.5
  - pcieport 0000:00:1c.5: AER: can't find device of ID00e5
  + pcieport 0000:00:1c.5: AER: Correctable error message received from 0000:00:1c.5
  + pcieport 0000:00:1c.5: AER: found no error details for 0000:00:1c.5

Link: https://lore.kernel.org/r/20231206224231.732765-3-helgaas@kernel.org
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
drivers/pci/pcie/aer.c