From: Miroslav Lichvar Date: Wed, 15 Jun 2011 10:11:32 +0000 (+0200) Subject: Fix current_total_tick calculation X-Git-Tag: 1.26-pre1~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c6e906549806792e53bb0087ee8ecea765c32e35;p=thirdparty%2Fchrony.git Fix current_total_tick calculation --- diff --git a/sys_linux.c b/sys_linux.c index 98c18ebf..c26023ec 100644 --- a/sys_linux.c +++ b/sys_linux.c @@ -649,29 +649,11 @@ set_frequency(double freq_ppm) double scaled_freq; /* what adjtimex & the kernel use */ double old_total_tick; int required_delta_tick; - int neg; /* True if estimate is that local clock runs slow, - i.e. positive frequency correction required */ - - - if (freq_ppm < 0.0) { - neg = 1; - freq_ppm = -freq_ppm; - } else { - neg = 0; - } required_delta_tick = our_round(freq_ppm / dhz); - required_freq = freq_ppm - dhz * (double) required_delta_tick; - - if (neg) { - /* Uncompensated local clock runs slow */ - required_tick = nominal_tick + required_delta_tick; - scaled_freq = freq_scale * required_freq; - } else { - /* Uncompensated local clock runs fast */ - required_tick = nominal_tick - required_delta_tick; - scaled_freq = -freq_scale * required_freq; - } + required_freq = -(freq_ppm - dhz * required_delta_tick); + required_tick = nominal_tick - required_delta_tick; + scaled_freq = freq_scale * required_freq; min_allowed_tick = nominal_tick - max_tick_bias; max_allowed_tick = nominal_tick + max_tick_bias;