*/
 static void ntp_update_frequency(void)
 {
-       u64 prev_base;
        u64 second_length;
-
-       prev_base = tick_length_base;
+       u64 new_base;
 
        second_length            = (u64)(tick_usec * NSEC_PER_USEC * USER_HZ)
                                                << NTP_SCALE_SHIFT;
        second_length           += (s64)ntp_tick_adj << NTP_SCALE_SHIFT;
        second_length           += time_freq;
 
-       tick_length_base         = second_length;
-
        tick_nsec                = div_u64(second_length, HZ) >> NTP_SCALE_SHIFT;
-       tick_length_base         = div_u64(tick_length_base, NTP_INTERVAL_FREQ);
+       new_base                 = div_u64(second_length, NTP_INTERVAL_FREQ);
 
        /*
         * Don't wait for the next second_overflow, apply
-        * the change to the tick length immediately
+        * the change to the tick length immediately:
         */
-       tick_length             += tick_length_base - prev_base;
+       tick_length             += new_base - tick_length_base;
+       tick_length_base         = new_base;
 }
 
 static void ntp_update_offset(long offset)