• R
    PM / Sleep: Make __pm_stay_awake() delete wakeup source timers · 4782e165
    Rafael J. Wysocki 提交于
    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: NArve Hjønnevåg <arve@android.com>
    Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
    4782e165
wakeup.c 20.5 KB