[RFC][PATCH - 12/13] NTP cleanup: cleanup ntp_advance() adjtime code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux