diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2011-12-05 15:20:23 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2011-12-06 05:38:32 -0500 |
commit | c9c024b3f3e07d087974db4c0dc46217fff3a6c0 (patch) | |
tree | 4dd125eef6c2f332d641876fac0e6f522b1d75c5 | |
parent | d68fb11c3dae75c8331538dcf083a65e697cc034 (diff) |
alarmtimers: Fix time comparison
The expiry function compares the timer against current time and does
not expire the timer when the expiry time is >= now. That's wrong. If
the timer is set for now, then it must expire.
Make the condition expiry > now for breaking out the loop.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: John Stultz <john.stultz@linaro.org>
Cc: stable@kernel.org
-rw-r--r-- | kernel/time/alarmtimer.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c index c436e790b21b..8a46f5d64504 100644 --- a/kernel/time/alarmtimer.c +++ b/kernel/time/alarmtimer.c | |||
@@ -195,7 +195,7 @@ static enum hrtimer_restart alarmtimer_fired(struct hrtimer *timer) | |||
195 | struct alarm *alarm; | 195 | struct alarm *alarm; |
196 | ktime_t expired = next->expires; | 196 | ktime_t expired = next->expires; |
197 | 197 | ||
198 | if (expired.tv64 >= now.tv64) | 198 | if (expired.tv64 > now.tv64) |
199 | break; | 199 | break; |
200 | 200 | ||
201 | alarm = container_of(next, struct alarm, node); | 201 | alarm = container_of(next, struct alarm, node); |