On Thu, 15 Jun 2006, Linus Torvalds wrote: > Suspending a device before everybody else has saved their state is > fundamentally and deeply wrong. You do not know whether other devices > might need that device for their state save. > > You may, for example, have devices that literally have so much state that > they need user help to save it - which in turn means that they must be > saved before you have suspended other and UNRELATED devices. X itself is > actually an example of this, but so might be anything with firmware, for > example). If this happens you're already in trouble. It doesn't matter that the unrelated devices aren't suspended; the fact that they have already saved their state and will no longer respond to outside stimuli means they can't be used. Not to mention that their I/O queues won't be running. Suppose a driver needs to store its state info on a networked drive and the network interface has already saved _its_ state? Or it needs to access a USB drive and the USB controller is no longer doing DMA? There is a clear need for a partial ordering of devices. If device A needs to use device B to save its state, then A's state must be saved before B's. Alan Stern