path: root/kernel
diff options
authorThomas Gleixner <>2011-12-05 21:20:23 +0100
committerGreg Kroah-Hartman <>2011-12-21 12:58:19 -0800
commitb2b3ffbcbc6fb1b98ef3cb4dd85bc1d095ac95ee (patch)
treede4c0867ec51203a1e83a4bb1bc3e1c69fa0cb09 /kernel
parente0b652a1a218e863e8fcf00aee316bf618bd0c1a (diff)
alarmtimers: Fix time comparison
commit c9c024b3f3e07d087974db4c0dc46217fff3a6c0 upstream. 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 <> Acked-by: John Stultz <> Signed-off-by: Greg Kroah-Hartman <>
Diffstat (limited to 'kernel')
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c
index ea5e1a928d5b..8b70c76910aa 100644
--- a/kernel/time/alarmtimer.c
+++ b/kernel/time/alarmtimer.c
@@ -181,7 +181,7 @@ static enum hrtimer_restart alarmtimer_fired(struct hrtimer *timer)
struct alarm *alarm;
ktime_t expired = next->expires;
- if (expired.tv64 >= now.tv64)
+ if (expired.tv64 > now.tv64)
alarm = container_of(next, struct alarm, node);