Message ID | 20241008221657.1130181-6-terry.bowman@amd.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Enable CXL PCIe port protocol error handling and logging | expand |
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 --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 */
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(+)