Don't "lose" devices on suspend on failure
Subsystems (4)
PATCH 1/1 Don't "lose" devices on suspend on failure
Hi !
I think we need this patch or we might "lose" devices to the dpm_irq_off list if a failure occurs during the suspend process.
Patrick, Greg, your opinion ?
Signed-off-by Benjamin Herrenschmidt <[email protected]>
drivers/base/power/suspend.c +12 -1
@@ -113,8 +113,19 @@put_device (dev); }up (&dpm_list_sem); -if (error) +if (error) { +/* we failed... before resuming, bring back devices from +* dpm_off_irq list back to main dpm_off list, we do want +* to call resume() on them, in case they partially suspended +* despite returning -EAGAIN +*/ +while (!list_empty (&dpm_off_irq)) { +struct list_head * entry = dpm_off_irq.next; +list_del (entry); +list_add (entry, &dpm_off); + }dpm_resume (); + }up (&dpm_sem);return error; }
Quoted 6 lines · Benjamin Herrenschmidt
Hi !
I think we need this patch or we might "lose" devices to the
dpm_irq_offlist if a failure occurs during the suspend process.Patrick, Greg, your opinion ?
Looks fine to me, I've added it to my tree.
thanks,
greg k-h