On Sat, 2 Feb 2013, Stefan Richter wrote: > OK. I, as a naive driver maintainer, expect a sequence like > [suspend request] -> suspend() -> [if ret==0, suspended state] -> > [resume request] -> resume() -> ... > but what apparently happens is > [suspend request] -> suspend() -> [if ret==0, suspended state] -> > [resume request] -> remove() -> ... > > If you had an ExpressCard or CardBus controller, then it could of course > happen that the PC is suspended, then the controller card physically > removed, and then a resume been requested. Question to all: Would the > driver's resume() method be called on the MIA device be called, or would > the driver's remove() method be called in such a case?
It depends on the subsystem. While processing a resume callback for a device (or for the device's parent), if the subsystem detects that the device has been removed then most likely it would skip calling the driver's resume method and would call the remove method instead. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

