On Sat, 5 Jan 2008, Rafael J. Wysocki wrote:
quoted
Another thing to watch out for: Just in case somebody ends up calling
destroy_suspended_device(dev) from within dev's own resume method, you
should interchange the resume_device() and the list_move_tail()
calls in dpm_resume().
However, if we unregister them all at once after releasing pm_sleep_rwsem,
that shouldn't be necessary, right?
It's still necessary, because destroy_suspended_device() still has to
move the device from one list to another. You don't want it to end up
on the dpm_locked list.
Alan Stern