aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/time
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2011-12-05 21:20:23 +0100
committerGreg Kroah-Hartman <gregkh@suse.de>2011-12-21 12:57:34 -0800
commit612e5dbc550f30c787e40b958d351720e72091c6 (patch)
tree3ba8f13e9a8d7f7bf0a6511bffe48f04d305c9e4 /kernel/time
parent2a72a47b80bf4dfbdec91889d1d2c4702f134da5 (diff)
downloadkernel_samsung_smdk4412-612e5dbc550f30c787e40b958d351720e72091c6.tar.gz
kernel_samsung_smdk4412-612e5dbc550f30c787e40b958d351720e72091c6.tar.bz2
kernel_samsung_smdk4412-612e5dbc550f30c787e40b958d351720e72091c6.zip
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 <tglx@linutronix.de> Acked-by: John Stultz <john.stultz@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'kernel/time')
-rw-r--r--kernel/time/alarmtimer.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c
index ea5e1a928d5..8b70c76910a 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)
break;
alarm = container_of(next, struct alarm, node);