On Wed, 9 Jul 2014, Bjorn Helgaas wrote: > > In the USB stack, the subsystem core resume code checks to see if a > > device has been unplugged before the driver's ->resume callback is > > invoked. If a device is gone, the driver callback is skipped. Thus > > drivers don't have to worry about trying to resume a device that has > > been unplugged. > > I assume that you do want to call the driver's ->remove method to free > any per-device state. Do USB drivers just have to be smart enough to > do that without touching the device? Not quite how I'd describe it. They have to be smart enough for the remove routine to run correctly even if the device is already gone -- _any_ driver for a hot-unpluggable device has to be like this. Obviously no driver can touch a device that is gone. But it can try. If a USB driver tries to touch a device that has been unplugged, the corresponding function call just returns an error. It doesn't crash. Alan Stern -- 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