linux/drivers/base/power
Alan Stern f2791d733a PM / Runtime: don't forget to wake up waitqueue on failure
This patch (as1535) fixes a bug in the runtime PM core.  When a
runtime suspend attempt completes, whether successfully or not, the
device's power.wait_queue is supposed to be signalled.  But this
doesn't happen in the failure pathway of rpm_suspend() when another
autosuspend attempt is rescheduled.  As a result, a task can get stuck
indefinitely on the wait queue (I have seen this happen in testing).

The patch fixes the problem by moving the wake_up_all() call up near
the start of the failure code.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
CC: <stable@vger.kernel.org>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
2012-03-26 22:46:52 +02:00
..
Makefile PM / Domains: Add device stop governor function (v4) 2011-12-01 21:47:40 +01:00
clock_ops.c device.h: cleanup users outside of linux/include (C files) 2012-03-11 14:27:37 -04:00
common.c device.h: cleanup users outside of linux/include (C files) 2012-03-11 14:27:37 -04:00
domain.c PM / Domains: Check domain status during hibernation restore of devices 2012-03-19 10:38:14 +01:00
domain_governor.c PM / Domains: Skip governor functions for CONFIG_PM_RUNTIME unset 2012-01-14 00:39:36 +01:00
generic_ops.c PM / Sleep: Introduce generic callbacks for new device PM phases 2012-01-29 20:38:41 +01:00
main.c PM / Sleep: Introduce "late suspend" and "early resume" of devices 2012-01-29 20:38:29 +01:00
opp.c device.h: cleanup users outside of linux/include (C files) 2012-03-11 14:27:37 -04:00
power.h PM / QoS: Make it possible to expose PM QoS latency constraints 2012-03-13 22:37:14 +01:00
qos.c PM / QoS: Make it possible to expose PM QoS latency constraints 2012-03-13 22:37:14 +01:00
runtime.c PM / Runtime: don't forget to wake up waitqueue on failure 2012-03-26 22:46:52 +02:00
sysfs.c PM / QoS: Make it possible to expose PM QoS latency constraints 2012-03-13 22:37:14 +01:00
trace.c drivers/base: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required. 2011-10-31 19:31:38 -04:00
wakeup.c PM / Sleep: Add more wakeup source initialization routines 2012-03-04 23:08:46 +01:00