On Sunday, 13 of January 2008, Michael Buesch wrote: > On Sunday 13 January 2008 00:08:29 Rafael J. Wysocki wrote: > > There is a problem with b43_suspend() that it (indirectly) causes > > b43_leds_exit() to be called, which attempts to unregister the leds device > > objects, which is forbidden (ie. you can't unregister and/or register devices > > during a suspend or resume). > > Why? Well, the unregistering itself is not really harmful, provided that the device is not registered back during the subsequent resume. The PM core uses a list of active devices that are added to the list in device_add(). The ordering of this list is important, because it is expected to reflect the order in which the devices are to be suspended. This list is manipulated during suspend/resume and devices are moved from it and back to it, so unregistering devices during a suspend and registering them during the subsequent resume generally changes its ordering and may lead to problems during the next suspend/resume cycle. This is also undesirable if we're going to stop using the freezer for suspend/resume at one point in the future. I'm sure Alan can add some more details. Greetings, Rafael _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm