• Viresh Kumar's avatar
    PM / wakeup: Rework wakeup source timer cancellation · 1fad17fb
    Viresh Kumar authored
    If wakeup_source_add() is called right after wakeup_source_remove()
    for the same wakeup source, timer_setup() may be called for a
    potentially scheduled timer which is incorrect.
    
    To avoid that, move the wakeup source timer cancellation from
    wakeup_source_drop() to wakeup_source_remove().
    
    Moreover, make wakeup_source_remove() clear the timer function after
    canceling the timer to let wakeup_source_not_registered() treat
    unregistered wakeup sources in the same way as the ones that have
    never been registered.
    Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
    Cc: 4.4+ <stable@vger.kernel.org> # 4.4+
    [ rjw: Subject, changelog, merged two patches together ]
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    1fad17fb
wakeup.c 29.7 KB