diff options
author | Rafael J. Wysocki <rjw@sisk.pl> | 2012-02-17 23:39:39 +0100 |
---|---|---|
committer | Rafael J. Wysocki <rjw@sisk.pl> | 2012-03-04 23:08:27 +0100 |
commit | 4782e1654bdbd30cf307da090b3c4f70157477cb (patch) | |
tree | 72305fb2e3fff719330f5302dda785c044e25575 /kernel/power | |
parent | da863cddd831b0f4bf2d067f8b75254f1be94590 (diff) | |
download | op-kernel-dev-4782e1654bdbd30cf307da090b3c4f70157477cb.zip op-kernel-dev-4782e1654bdbd30cf307da090b3c4f70157477cb.tar.gz |
PM / Sleep: Make __pm_stay_awake() delete wakeup source timers
If __pm_stay_awake() is called after __pm_wakeup_event() for the same
wakep source object before its timer expires, it won't cancel the
timer, so the wakeup source will be deactivated from the timer
function as scheduled by __pm_wakeup_event(). In that case
__pm_stay_awake() doesn't have any effect beyond incrementing
the wakeup source's event_count field, although it should cancel
the timer and make the wakeup source stay active until __pm_relax()
is called for it.
To fix this problem make __pm_stay_awake() delete the wakeup source's
timer and ensure that it won't be deactivated from the timer funtion
afterwards by clearing its timer_expires field.
Reported-by: Arve Hjønnevåg <arve@android.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Diffstat (limited to 'kernel/power')
0 files changed, 0 insertions, 0 deletions