On Mon, 25 Feb 2008, Alan Stern wrote: > The only possible solution is to have the drivers themselves be > responsible for preventing calls to device_add() or device_register() > during a system sleep. (It's also necessary to prevent driver binding, > but this isn't a major issue.) The most straightforward approach is to > add a new pair of driver methods: one to disable adding children and > one to re-enable it. Of course this would represent a significant > addition to the Power Management driver interface. > > (Note that the existing suspend and resume methods cannot be used for > this purpose. Drivers assume that when the suspend method is called, > it has already been called for all the child devices. This wouldn't be > true if one of the purposes of the method was to prevent addition of > new children.) On further thought maybe the existing methods can be used, with care. Drivers would have to assume the responsibility of synchronizing with their helper threads and stopping addition of new children (something they should already be doing), and they would also have to check that all the existing children are already suspended. They should not make the assumption that the PM core has already suspended all the children. The PM core could help detect errors here. If it tries to suspend a device and sees that the device's parent is already suspended, then the parent's driver has a bug. Alan Stern _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm