On 8/31/2018 2:26 PM, Keith Busch wrote:
+static void pcie_disconnect_device(struct pci_dev *dev) +{ + struct pci_bus *bus = dev->subordinate; + struct pci_dev *child, *tmp; + + broadcast_error_message(dev, PCI_ERS_RESULT_DISCONNECT, + "disconnect", report_disconnect); + pci_lock_rescan_remove(); + list_for_each_entry_safe(child, tmp, &bus->devices, bus_list) + pci_stop_and_remove_bus_device(child); + + pci_bridge_secondary_bus_reset(dev);
Series look great so far. Please check the return value of pci_bridge_secondary_bus_reset().