On Fri, 2013-07-05 at 12:49 -0600, Bjorn Helgaas wrote: > We already have pcibios_release_device() (just merged for v3.11). > Would that work for you? I haven't seen your whole series, so I can't > tell whether you need something different. Maybe... Gavin's original hook applies when the device is removed from the tree, your new hook when the refcount expires and the structure is about to be freed... I *suspect* that's fine but I'll need to have a closer look (or wait for Gavin to be back from vacation :-) BTW. One thing we do in EEH is that if we get an error and the driver for the device doesn't implement recovery, we simulate a hotplug. IE. We unplug the device (currently removing it), reset it (or the bus it's on, whatever applies, which lifts the fence established by the EEH hardware), and re-plug it. The current method really removes the device from the PCI subsystem, and "plugs" it back. IE. We rescan the slot, and might even end up re-assigning resources, which I'm not too fan about. It's also unclear what quirks gets called in that re-plug case, etc... I'm wondering whether it might be better to keep the pci_dev around, just mark it blocked for user access, unbind the driver, reset, restore the BARs to their original values, unblock and re-bind. What's your take on this ? Cheers, Ben. -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html