PM / wakeup: Use irqsave/irqrestore for events_lock
authorJohn Stultz <john.stultz@linaro.org>
Thu, 6 Sep 2012 21:19:06 +0000 (23:19 +0200)
committerRafael J. Wysocki <rjw@sisk.pl>
Thu, 6 Sep 2012 21:19:06 +0000 (23:19 +0200)
commit4955070974ecfa0b1ae9d2506f529460fd3a4b0b
tree7eaf09c1756fa1bf2534998a60b9543cc411d79d
parent5834ec3aea8a84b70efeb52ee91a8f8b1042cd2a
PM / wakeup: Use irqsave/irqrestore for events_lock

Jon Medhurst (Tixy) recently noticed a problem with the
events_lock usage. One of the Android patches that uses
wakeup_sources calls wakeup_source_add() with irqs disabled.
However, the event_lock usage in wakeup_source_add() uses
spin_lock_irq()/spin_unlock_irq(), which reenables interrupts.
This results in lockdep warnings.

The fix is to use spin_lock_irqsave()/spin_lock_irqrestore()
instead for the events_lock.

References: https://bugs.launchpad.net/linaro-landing-team-arm/+bug/1037565
Reported-and-debugged-by: Jon Medhurst (Tixy) <tixy@linaro.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
drivers/base/power/wakeup.c