From 12c0d47c60f4fb6f5a11c02ddb91a6c7ded5a049 Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Tue, 18 Mar 2014 03:57:35 +0100 Subject: timedatectl: clear ADJ_MAXERROR to make sure we keep STA_SYNC set --- src/timedate/timedate-sntp.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/timedate/timedate-sntp.c b/src/timedate/timedate-sntp.c index 36b2a1a1a..e4aad36cc 100644 --- a/src/timedate/timedate-sntp.c +++ b/src/timedate/timedate-sntp.c @@ -347,14 +347,12 @@ static int sntp_adjust_clock(SNTPContext *sntp, double offset, int leap_sec) { * syncs the system time periodically to the hardware clock. */ if (offset < NTP_MAX_ADJUST && offset > -NTP_MAX_ADJUST) { - int constant; - - constant = log2i(sntp->poll_interval_usec / USEC_PER_SEC) - 6; - - tmx.modes |= ADJ_STATUS | ADJ_OFFSET | ADJ_TIMECONST; + tmx.modes |= ADJ_STATUS | ADJ_OFFSET | ADJ_TIMECONST | ADJ_MAXERROR | ADJ_ESTERROR; tmx.status = STA_PLL; tmx.offset = offset * 1000 * 1000; - tmx.constant = constant; + tmx.constant = log2i(sntp->poll_interval_usec / USEC_PER_SEC) - 6; + tmx.maxerror = 0; + tmx.esterror = 0; log_debug(" adjust (slew): %+f sec\n", (double)tmx.offset / USEC_PER_SEC); } else { tmx.modes = ADJ_SETOFFSET; -- cgit v1.2.3