|
@@ -644,6 +644,12 @@ hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval)
|
|
orun++;
|
|
orun++;
|
|
}
|
|
}
|
|
timer->expires = ktime_add(timer->expires, interval);
|
|
timer->expires = ktime_add(timer->expires, interval);
|
|
|
|
+ /*
|
|
|
|
+ * Make sure, that the result did not wrap with a very large
|
|
|
|
+ * interval.
|
|
|
|
+ */
|
|
|
|
+ if (timer->expires.tv64 < 0)
|
|
|
|
+ timer->expires = ktime_set(KTIME_SEC_MAX, 0);
|
|
|
|
|
|
return orun;
|
|
return orun;
|
|
}
|
|
}
|