rtc: Avoid setting alarm to a time in the past
authorJohn Stultz <john.stultz@linaro.org>
Thu, 5 Jan 2012 23:21:19 +0000 (15:21 -0800)
committerJohn Stultz <john.stultz@linaro.org>
Fri, 27 Jan 2012 03:41:30 +0000 (19:41 -0800)
commitbd729d72b428261f2975360e0c117d7d7a2cd6e8
tree73ebfff880ba7d96cb5d82e0811b0476ab310c16
parenta99cbf6b43a7b3b15f6139b2d9ac4ecceccd3c99
rtc: Avoid setting alarm to a time in the past

In some cases at boot up, the RTC alarm may be set in the past,
but still have the enabled flag on. This was causing problems,
because we would then enqueue the alarm into the timerqueue,
but it would never fire. This would clog up the timerqueue
and keep other alarms from working.

The fix is to check the alarm against the current rtc time at
boot and avoid enqueueing the alarm if it is in the past.

Reported-by: NeilBrown <neilb@suse.de>
Tested-by: NeilBrown <neilb@suse.de>
Tested-by: Sander Eikelenboom <linux@eikelenboom.it>
Signed-off-by: John Stultz <john.stultz@linaro.org>
drivers/rtc/interface.c