]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
Fix RTC slew handler
authorMiroslav Lichvar <mlichvar@redhat.com>
Fri, 7 May 2010 13:23:21 +0000 (15:23 +0200)
committerMiroslav Lichvar <mlichvar@redhat.com>
Fri, 7 May 2010 16:51:35 +0000 (18:51 +0200)
The frequency adjustment needs to be done in the opposite direction.

rtc_linux.c

index 463d8b41a18035c45b6b73ce196a8a1b117b7d58..4f8723c0af20c25102402bdc9bc1916acfe78b8f 100644 (file)
@@ -314,7 +314,7 @@ slew_samples
   for (i=0; i<n_samples; i++) {
     UTI_DiffTimevalsToDouble(&elapsed, cooked, system_times + i);
 
-    delta_time = -(elapsed * dfreq) - doffset;
+    delta_time = elapsed * dfreq - doffset;
 
     UTI_AddDoubleToTimeval(system_times + i, delta_time, system_times + i);
 
@@ -325,7 +325,7 @@ slew_samples
 
   if (coefs_valid) {
     coef_seconds_fast += doffset;
-    coef_gain_rate = 1.0 - (1.0 + dfreq) * (1.0 - coef_gain_rate);
+    coef_gain_rate = (1.0 + dfreq) * (1.0 + coef_gain_rate) - 1.0;
   }
 
 #if 0