From c34517b5762e139dcbb1bbb97dc79e82c733338e Mon Sep 17 00:00:00 2001 From: Thorsten Lockert Date: Sat, 25 Jan 1997 23:35:59 +0000 Subject: Don't do disruptive time corrections if tick size is not integral; from Dennis Ferguson (NetBSD PR #2788) --- sys/kern/kern_clock.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'sys') diff --git a/sys/kern/kern_clock.c b/sys/kern/kern_clock.c index d2a8ae4462f..45ea1f52e6e 100644 --- a/sys/kern/kern_clock.c +++ b/sys/kern/kern_clock.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kern_clock.c,v 1.14 1997/01/25 23:31:47 tholo Exp $ */ +/* $OpenBSD: kern_clock.c,v 1.15 1997/01/25 23:35:58 tholo Exp $ */ /* $NetBSD: kern_clock.c,v 1.34 1996/06/09 04:51:03 briggs Exp $ */ /*- @@ -284,7 +284,7 @@ static int psdiv, pscnt; /* prof => stat divider */ int psratio; /* ratio: prof / stat */ int tickfix, tickfixinterval; /* used if tick not really integral */ #ifndef NTP -static int tickfixcnt; /* number of ticks since last fix */ +static int tickfixcnt; /* accumulated fractional error */ #else int fixtick; /* used by NTP for same */ int shifthz; @@ -415,10 +415,10 @@ hardclock(frame) #ifndef NTP if (tickfix) { - tickfixcnt++; + tickfixcnt += tickfix; if (tickfixcnt >= tickfixinterval) { - delta += tickfix; - tickfixcnt = 0; + delta++; + tickfixcnt -= tickfixinterval; } } #else -- cgit v1.2.3