All,
        This patch simplifies and cleans up the adjtime code in ntp_advance and
corrects a comment.

Any comments or feedback would be greatly appreciated.

thanks
-john

linux-2.6.13-rc6_timeofday-ntp-part12_B5.patch
============================================
diff --git a/kernel/ntp.c b/kernel/ntp.c
--- a/kernel/ntp.c
+++ b/kernel/ntp.c
@@ -156,29 +156,25 @@ void ntp_advance(unsigned long interval_
        shifted_ppm_sum += ss_adj << SHIFT_USEC;
 
 
-       if ( (time_adjust_step = ntp_adjtime_offset) != 0 ) {
-           /* We are doing an adjtime thing.
-            *
-            * Prepare time_adjust_step to be within bounds.
-            * Note that a positive ntp_adjtime_offset means we want the clock
-            * to run faster.
-            *
-            * Limit the amount of the step to be in the range
-            * -tickadj .. +tickadj
-            */
-               if (ntp_adjtime_offset > tickadj)
-                       time_adjust_step = tickadj;
-               else if (ntp_adjtime_offset < -tickadj)
-                       time_adjust_step = -tickadj;
+       /* Calculate the fixed tick adjustment */
+       fixed_tick_ns_adj = 0;
 
-           /* Reduce by this step the amount of time left  */
-           ntp_adjtime_offset -= time_adjust_step;
+       /* If we are doing an adjtime thing */
+       if (ntp_adjtime_offset) {
+               long adjust_step = ntp_adjtime_offset;
+               /* Limit the amount of the step to be in the range
+                * -tickadj .. +tickadj
+                */
+               adjust_step = min_t(long, tickadj, adjust_step);
+               adjust_step = max_t(long, -tickadj, adjust_step);
+               /* Reduce by this step the amount of time left  */
+               ntp_adjtime_offset -= adjust_step;
+               fixed_tick_ns_adj += adjust_step * 1000;
        }
-       fixed_tick_ns_adj = time_adjust_step * 1000;
 
        /*
-        * Advance the phase, once it gets to one microsecond, then
-        * advance the tick more.
+        * Advance the phase, once it gets to one nanosecond,
+        * then advance the fixed_tick_ns_adj.
         */
        time_phase += time_adj;
        if (time_phase <= -FINENSEC) {


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to