diff mbox series

[05/15] cxl/aer/pci: Update AER driver to read UCE fatal status for all CXL PCIe port devices

Message ID 20241008221657.1130181-6-terry.bowman@amd.com
State Superseded
Headers show
Series Enable CXL PCIe port protocol error handling and logging | expand

Commit Message

Bowman, Terry Oct. 8, 2024, 10:16 p.m. UTC
The AER service driver's aer_get_device_err_info() function does not
read uncorrectable (UCE) fatal error status from PCIe upstream port
devices. As a result, fatal errors are not logged or handled as needed
for CXL PCIe upstream switch port devices.

Update the aer_get_device_err_info() function to read the UCE fatal
status for all CXL PCIe port devices.

The fatal error status will be used in future patches implementing
CXL PCIe port error handling and logging.

Signed-off-by: Terry Bowman <terry.bowman@amd.com>
---
 drivers/pci/pcie/aer.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Jonathan Cameron Oct. 16, 2024, 4:28 p.m. UTC | #1
On Tue, 8 Oct 2024 17:16:47 -0500
Terry Bowman <terry.bowman@amd.com> wrote:

> The AER service driver's aer_get_device_err_info() function does not
> read uncorrectable (UCE) fatal error status from PCIe upstream port
> devices. As a result, fatal errors are not logged or handled as needed
> for CXL PCIe upstream switch port devices.

I wonder why not?  Is this the first ever upstream port to
report an uncorrectable error (that didn't mean the link was
down) or is there something more subtle going on.

PCI folk, this one looks like it might cause problems to me.

> 
> Update the aer_get_device_err_info() function to read the UCE fatal
error_info()

> status for all CXL PCIe port devices.
> 
> The fatal error status will be used in future patches implementing
> CXL PCIe port error handling and logging.
> 
> Signed-off-by: Terry Bowman <terry.bowman@amd.com>
> ---
>  drivers/pci/pcie/aer.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
> index 1c996287d4ce..9b2872c8e20d 100644
> --- a/drivers/pci/pcie/aer.c
> +++ b/drivers/pci/pcie/aer.c
> @@ -1282,6 +1282,7 @@ int aer_get_device_error_info(struct pci_dev *dev, struct aer_err_info *info)
>  	} else if (type == PCI_EXP_TYPE_ROOT_PORT ||
>  		   type == PCI_EXP_TYPE_RC_EC ||
>  		   type == PCI_EXP_TYPE_DOWNSTREAM ||
> +		   type == PCI_EXP_TYPE_UPSTREAM ||
>  		   info->severity == AER_NONFATAL) {
>  
>  		/* Link is still healthy for IO reads */
So this comment makes me worried.  In general case the fatal
error may mean we can't talk to the USP?

Jonathan
diff mbox series

Patch

diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
index 1c996287d4ce..9b2872c8e20d 100644
--- a/drivers/pci/pcie/aer.c
+++ b/drivers/pci/pcie/aer.c
@@ -1282,6 +1282,7 @@  int aer_get_device_error_info(struct pci_dev *dev, struct aer_err_info *info)
 	} else if (type == PCI_EXP_TYPE_ROOT_PORT ||
 		   type == PCI_EXP_TYPE_RC_EC ||
 		   type == PCI_EXP_TYPE_DOWNSTREAM ||
+		   type == PCI_EXP_TYPE_UPSTREAM ||
 		   info->severity == AER_NONFATAL) {
 
 		/* Link is still healthy for IO reads */