diff options
Diffstat (limited to 'kernel/time')
-rw-r--r-- | kernel/time/timekeeping.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index ec1791fae965..cad61b3f6bea 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c | |||
@@ -1332,6 +1332,12 @@ static __always_inline void timekeeping_apply_adjustment(struct timekeeper *tk, | |||
1332 | * | 1332 | * |
1333 | * XXX - TODO: Doc ntp_error calculation. | 1333 | * XXX - TODO: Doc ntp_error calculation. |
1334 | */ | 1334 | */ |
1335 | if (tk->tkr.mult + mult_adj < mult_adj) { | ||
1336 | /* NTP adjustment caused clocksource mult overflow */ | ||
1337 | WARN_ON_ONCE(1); | ||
1338 | return; | ||
1339 | } | ||
1340 | |||
1335 | tk->tkr.mult += mult_adj; | 1341 | tk->tkr.mult += mult_adj; |
1336 | tk->xtime_interval += interval; | 1342 | tk->xtime_interval += interval; |
1337 | tk->tkr.xtime_nsec -= offset; | 1343 | tk->tkr.xtime_nsec -= offset; |