aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/time/alarmtimer.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/time/alarmtimer.c')
-rw-r--r--kernel/time/alarmtimer.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c
index 3921cf7fea8e..ab6ac077bdb7 100644
--- a/kernel/time/alarmtimer.c
+++ b/kernel/time/alarmtimer.c
@@ -254,13 +254,13 @@ static int alarmtimer_suspend(struct device *dev)
254 if (!next) 254 if (!next)
255 continue; 255 continue;
256 delta = ktime_sub(next->expires, base->gettime()); 256 delta = ktime_sub(next->expires, base->gettime());
257 if (!min.tv64 || (delta.tv64 < min.tv64)) { 257 if (!min || (delta < min)) {
258 expires = next->expires; 258 expires = next->expires;
259 min = delta; 259 min = delta;
260 type = i; 260 type = i;
261 } 261 }
262 } 262 }
263 if (min.tv64 == 0) 263 if (min == 0)
264 return 0; 264 return 0;
265 265
266 if (ktime_to_ns(min) < 2 * NSEC_PER_SEC) { 266 if (ktime_to_ns(min) < 2 * NSEC_PER_SEC) {
@@ -328,7 +328,7 @@ static void alarmtimer_freezerset(ktime_t absexp, enum alarmtimer_type type)
328 delta = ktime_sub(absexp, base->gettime()); 328 delta = ktime_sub(absexp, base->gettime());
329 329
330 spin_lock_irqsave(&freezer_delta_lock, flags); 330 spin_lock_irqsave(&freezer_delta_lock, flags);
331 if (!freezer_delta.tv64 || (delta.tv64 < freezer_delta.tv64)) { 331 if (!freezer_delta || (delta < freezer_delta)) {
332 freezer_delta = delta; 332 freezer_delta = delta;
333 freezer_expires = absexp; 333 freezer_expires = absexp;
334 freezer_alarmtype = type; 334 freezer_alarmtype = type;
@@ -453,10 +453,10 @@ u64 alarm_forward(struct alarm *alarm, ktime_t now, ktime_t interval)
453 453
454 delta = ktime_sub(now, alarm->node.expires); 454 delta = ktime_sub(now, alarm->node.expires);
455 455
456 if (delta.tv64 < 0) 456 if (delta < 0)
457 return 0; 457 return 0;
458 458
459 if (unlikely(delta.tv64 >= interval.tv64)) { 459 if (unlikely(delta >= interval)) {
460 s64 incr = ktime_to_ns(interval); 460 s64 incr = ktime_to_ns(interval);
461 461
462 overrun = ktime_divns(delta, incr); 462 overrun = ktime_divns(delta, incr);
@@ -464,7 +464,7 @@ u64 alarm_forward(struct alarm *alarm, ktime_t now, ktime_t interval)
464 alarm->node.expires = ktime_add_ns(alarm->node.expires, 464 alarm->node.expires = ktime_add_ns(alarm->node.expires,
465 incr*overrun); 465 incr*overrun);
466 466
467 if (alarm->node.expires.tv64 > now.tv64) 467 if (alarm->node.expires > now)
468 return overrun; 468 return overrun;
469 /* 469 /*
470 * This (and the ktime_add() below) is the 470 * This (and the ktime_add() below) is the
@@ -522,7 +522,7 @@ static enum alarmtimer_restart alarm_handle_timer(struct alarm *alarm,
522 } 522 }
523 523
524 /* Re-add periodic timers */ 524 /* Re-add periodic timers */
525 if (ptr->it.alarm.interval.tv64) { 525 if (ptr->it.alarm.interval) {
526 ptr->it_overrun += alarm_forward(alarm, now, 526 ptr->it_overrun += alarm_forward(alarm, now,
527 ptr->it.alarm.interval); 527 ptr->it.alarm.interval);
528 result = ALARMTIMER_RESTART; 528 result = ALARMTIMER_RESTART;
@@ -730,7 +730,7 @@ static int update_rmtp(ktime_t exp, enum alarmtimer_type type,
730 730
731 rem = ktime_sub(exp, alarm_bases[type].gettime()); 731 rem = ktime_sub(exp, alarm_bases[type].gettime());
732 732
733 if (rem.tv64 <= 0) 733 if (rem <= 0)
734 return 0; 734 return 0;
735 rmt = ktime_to_timespec(rem); 735 rmt = ktime_to_timespec(rem);
736 736
@@ -755,7 +755,7 @@ static long __sched alarm_timer_nsleep_restart(struct restart_block *restart)
755 struct alarm alarm; 755 struct alarm alarm;
756 int ret = 0; 756 int ret = 0;
757 757
758 exp.tv64 = restart->nanosleep.expires; 758 exp = restart->nanosleep.expires;
759 alarm_init(&alarm, type, alarmtimer_nsleep_wakeup); 759 alarm_init(&alarm, type, alarmtimer_nsleep_wakeup);
760 760
761 if (alarmtimer_do_nsleep(&alarm, exp)) 761 if (alarmtimer_do_nsleep(&alarm, exp))
@@ -835,7 +835,7 @@ static int alarm_timer_nsleep(const clockid_t which_clock, int flags,
835 restart = &current->restart_block; 835 restart = &current->restart_block;
836 restart->fn = alarm_timer_nsleep_restart; 836 restart->fn = alarm_timer_nsleep_restart;
837 restart->nanosleep.clockid = type; 837 restart->nanosleep.clockid = type;
838 restart->nanosleep.expires = exp.tv64; 838 restart->nanosleep.expires = exp;
839 restart->nanosleep.rmtp = rmtp; 839 restart->nanosleep.rmtp = rmtp;
840 ret = -ERESTART_RESTARTBLOCK; 840 ret = -ERESTART_RESTARTBLOCK;
841 841