diff options
-rw-r--r-- | kernel/hrtimer.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c index ec4cb9f3e3b7..5e7122d3f46f 100644 --- a/kernel/hrtimer.c +++ b/kernel/hrtimer.c | |||
@@ -644,6 +644,12 @@ hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval) | |||
644 | orun++; | 644 | orun++; |
645 | } | 645 | } |
646 | timer->expires = ktime_add(timer->expires, interval); | 646 | timer->expires = ktime_add(timer->expires, interval); |
647 | /* | ||
648 | * Make sure, that the result did not wrap with a very large | ||
649 | * interval. | ||
650 | */ | ||
651 | if (timer->expires.tv64 < 0) | ||
652 | timer->expires = ktime_set(KTIME_SEC_MAX, 0); | ||
647 | 653 | ||
648 | return orun; | 654 | return orun; |
649 | } | 655 | } |