On Wed, Feb 05, 2020 at 10:28:00AM -0800, Kuppuswamy Sathyanarayanan wrote: > Hi Bjorn, > > On Sat, Jan 18, 2020 at 08:00:30PM -0800, sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx wrote: > > From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx> > > > > Commit bdb5ac85777d ("PCI/ERR: Handle fatal error recovery") uses > > reset_link() to recover from fatal errors. But during fatal error > > recovery, if the initial value of error status is > > PCI_ERS_RESULT_DISCONNECT or PCI_ERS_RESULT_NO_AER_DRIVER then > > even after successful recovery (using reset_link()) pcie_do_recovery() > > will report the recovery result as failure. So update the status of > > error after reset_link(). > > Since this patch has no dependency on EDR, can we merge it first? We *could*, but I don't think there's any benefit. bdb5ac85777d appeared in v4.20, so this wouldn't really be a candidate for v5.6. I'm expecting (hoping, anyway) that we'll merge this whole series for v5.7. For minor bugfixes like this one, we should add stable tags so they'll get backported. > > Fixes: bdb5ac85777d ("PCI/ERR: Handle fatal error recovery") > > Cc: Ashok Raj <ashok.raj@xxxxxxxxx> > > Cc: Keith Busch <keith.busch@xxxxxxxxx> > > Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx> > > Acked-by: Keith Busch <keith.busch@xxxxxxxxx> > > --- > > drivers/pci/pcie/err.c | 8 +++++--- > > 1 file changed, 5 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/pci/pcie/err.c b/drivers/pci/pcie/err.c > > index b0e6048a9208..71639055511e 100644 > > --- a/drivers/pci/pcie/err.c > > +++ b/drivers/pci/pcie/err.c > > @@ -204,9 +204,11 @@ void pcie_do_recovery(struct pci_dev *dev, enum pci_channel_state state, > > else > > pci_walk_bus(bus, report_normal_detected, &status); > > > > - if (state == pci_channel_io_frozen && > > - reset_link(dev, service) != PCI_ERS_RESULT_RECOVERED) > > - goto failed; > > + if (state == pci_channel_io_frozen) { > > + status = reset_link(dev, service); > > + if (status != PCI_ERS_RESULT_RECOVERED) > > + goto failed; > > + } > > > > if (status == PCI_ERS_RESULT_CAN_RECOVER) { > > status = PCI_ERS_RESULT_RECOVERED; > > -- > > 2.21.0 > > > > -- > Sathyanarayanan Kuppuswamy > Linux kernel developer