clocksource: Avoid selecting mult values that might overflow when adjusted
[deliverable/linux.git] / kernel / time / timekeeping.c
index 2b021b0e8507e7e4f9951780c88877bb2d4d56bd..e65ff3171102841aea46250576bb8eb64023169f 100644 (file)
@@ -820,6 +820,13 @@ static void timekeeping_adjust(s64 offset)
        } else
                return;
 
+       WARN_ONCE(timekeeper.clock->maxadj &&
+                       (timekeeper.mult + adj > timekeeper.clock->mult +
+                                               timekeeper.clock->maxadj),
+                       "Adjusting %s more then 11%% (%ld vs %ld)\n",
+                       timekeeper.clock->name, (long)timekeeper.mult + adj,
+                       (long)timekeeper.clock->mult +
+                               timekeeper.clock->maxadj);
        timekeeper.mult += adj;
        timekeeper.xtime_interval += interval;
        timekeeper.xtime_nsec -= offset;
This page took 0.024713 seconds and 5 git commands to generate.