Hi all, We have a PCIe device with several functions, 0, 1, and 2. However only function 1 has and needs a driver. We've added PCIe error handler support to this driver, but it doesn't work by itself to recover the device because the other two functions do not have drivers bound to them. This condition is covered by the following code block in drivers/pci/pcie/err.c: if (!pci_dev_set_io_state(dev, state) || !pdrv || !pdrv->err_handler || !pdrv->err_handler->error_detected) { /* * If any device in the subtree does not have an error_detected * callback, PCI_ERS_RESULT_NO_AER_DRIVER prevents subsequent * error callbacks of "any" device in the subtree, and will * exit in the disconnected error state. */ if (dev->hdr_type != PCI_HEADER_TYPE_BRIDGE) { vote = PCI_ERS_RESULT_NO_AER_DRIVER; pci_info(dev, "can't recover (no error_detected callback)\n"); } The current solution is to bind dummy drivers to these functions with error handler support. However, these are custom drivers and we're looking for a solution that would work upstream without having to provide these drivers. Starting by looking at this code, is a particular reason to require a driver in order to recover a PCIe device? Would it be feasible to remove this requirement, at least allowing other existing function drivers to recover themselves and allowing recovery of the slot? Thanks. -- 2.32.0