aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/timex.h1
-rw-r--r--kernel/time/ntp.c9
2 files changed, 4 insertions, 6 deletions
diff --git a/include/linux/timex.h b/include/linux/timex.h
index b5f297e17668..7715b4c0caf9 100644
--- a/include/linux/timex.h
+++ b/include/linux/timex.h
@@ -208,7 +208,6 @@ extern int time_state; /* clock status */
208extern int time_status; /* clock synchronization status bits */ 208extern int time_status; /* clock synchronization status bits */
209extern long time_offset; /* time adjustment (us) */ 209extern long time_offset; /* time adjustment (us) */
210extern long time_constant; /* pll time constant */ 210extern long time_constant; /* pll time constant */
211extern long time_tolerance; /* frequency tolerance (ppm) */
212extern long time_precision; /* clock precision (us) */ 211extern long time_precision; /* clock precision (us) */
213extern long time_maxerror; /* maximum error */ 212extern long time_maxerror; /* maximum error */
214extern long time_esterror; /* estimated error */ 213extern long time_esterror; /* estimated error */
diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c
index 65223b7ed810..af7563f5d4e2 100644
--- a/kernel/time/ntp.c
+++ b/kernel/time/ntp.c
@@ -34,7 +34,6 @@ int time_state = TIME_OK; /* clock synchronization status */
34int time_status = STA_UNSYNC; /* clock status bits */ 34int time_status = STA_UNSYNC; /* clock status bits */
35long time_offset; /* time adjustment (ns) */ 35long time_offset; /* time adjustment (ns) */
36long time_constant = 2; /* pll time constant */ 36long time_constant = 2; /* pll time constant */
37long time_tolerance = MAXFREQ; /* frequency tolerance (ppm) */
38long time_precision = 1; /* clock precision (us) */ 37long time_precision = 1; /* clock precision (us) */
39long time_maxerror = NTP_PHASE_LIMIT; /* maximum error (us) */ 38long time_maxerror = NTP_PHASE_LIMIT; /* maximum error (us) */
40long time_esterror = NTP_PHASE_LIMIT; /* estimated error (us) */ 39long time_esterror = NTP_PHASE_LIMIT; /* estimated error (us) */
@@ -87,7 +86,7 @@ void second_overflow(void)
87 long time_adj; 86 long time_adj;
88 87
89 /* Bump the maxerror field */ 88 /* Bump the maxerror field */
90 time_maxerror += time_tolerance >> SHIFT_USEC; 89 time_maxerror += MAXFREQ >> SHIFT_USEC;
91 if (time_maxerror > NTP_PHASE_LIMIT) { 90 if (time_maxerror > NTP_PHASE_LIMIT) {
92 time_maxerror = NTP_PHASE_LIMIT; 91 time_maxerror = NTP_PHASE_LIMIT;
93 time_status |= STA_UNSYNC; 92 time_status |= STA_UNSYNC;
@@ -313,8 +312,8 @@ int do_adjtimex(struct timex *txc)
313 } else /* calibration interval too long (p. 12) */ 312 } else /* calibration interval too long (p. 12) */
314 result = TIME_ERROR; 313 result = TIME_ERROR;
315 } 314 }
316 time_freq = min(time_freq, time_tolerance); 315 time_freq = min(time_freq, MAXFREQ);
317 time_freq = max(time_freq, -time_tolerance); 316 time_freq = max(time_freq, -MAXFREQ);
318 time_offset = (time_offset * NSEC_PER_USEC / HZ) << SHIFT_UPDATE; 317 time_offset = (time_offset * NSEC_PER_USEC / HZ) << SHIFT_UPDATE;
319 } /* STA_PLL */ 318 } /* STA_PLL */
320 } /* txc->modes & ADJ_OFFSET */ 319 } /* txc->modes & ADJ_OFFSET */
@@ -337,7 +336,7 @@ leave: if ((time_status & (STA_UNSYNC|STA_CLOCKERR)) != 0)
337 txc->status = time_status; 336 txc->status = time_status;
338 txc->constant = time_constant; 337 txc->constant = time_constant;
339 txc->precision = time_precision; 338 txc->precision = time_precision;
340 txc->tolerance = time_tolerance; 339 txc->tolerance = MAXFREQ;
341 txc->tick = tick_usec; 340 txc->tick = tick_usec;
342 341
343 /* PPS is not implemented, so these are zero */ 342 /* PPS is not implemented, so these are zero */