On Sun, Sep 27, 2020 at 06:45:45PM -0500, Bjorn Helgaas wrote: > On Tue, Sep 22, 2020 at 02:38:56PM -0700, Sean V Kelley wrote: > > From: Qiuxu Zhuo <qiuxu.zhuo@xxxxxxxxx> > > pci_dbg(dev, "broadcast error_detected message\n"); > > if (state == pci_channel_io_frozen) { > > - pci_bridge_walk(bridge, report_frozen_detected, &status); > > + pci_bridge_walk(bridge, dev, report_frozen_detected, &status); > > if (type == PCI_EXP_TYPE_RC_END) { > > + /* > > + * The callback only clears the Root Error Status > > + * of the RCEC (see aer.c). > > + */ > > + if (bridge) > > + reset_subordinate_devices(bridge); > > It's unfortunate to add yet another special case in this code, and I'm > not thrilled about the one in aer_root_reset() either. It's just not > obvious why they should be there. I'm sure if I spent 30 minutes > decoding things, it would all make sense. Guess I'm just griping > because I don't have a better suggestion. I'm sorry, this was unkind of me. If I don't have a constructive idea, there's no reason for me to complain about this. I apologize. Bjorn