Re: [PATCH] PM: Acquire device locks on suspend
From: Rafael J. Wysocki <hidden>
Date: 2008-01-05 21:13:38
On Saturday, 5 of January 2008, Alan Stern wrote:
On Sat, 5 Jan 2008, Rafael J. Wysocki wrote:quoted
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.
Hmm. That means we'd have to do the same thing in dpm_power_up() in case someone calls destroy_suspended_device() from resume_device_early(dev). Still, even doing that is not enough, since someone can call destroy_suspended_device() from a .suspend() routine and then the device will end up on a wrong list just as well. Greetings, Rafael