summaryrefslogtreecommitdiff
path: root/sys/kern/kern_clock.c
diff options
context:
space:
mode:
authorThorsten Lockert <tholo@cvs.openbsd.org>1997-01-25 23:35:59 +0000
committerThorsten Lockert <tholo@cvs.openbsd.org>1997-01-25 23:35:59 +0000
commitc34517b5762e139dcbb1bbb97dc79e82c733338e (patch)
tree80611d7ca1d1fe2dfbf6ff38867d44af8e294905 /sys/kern/kern_clock.c
parent4bb9555af88941610c9d462f12830588c2b59523 (diff)
Don't do disruptive time corrections if tick size is not integral; from
Dennis Ferguson (NetBSD PR #2788)
Diffstat (limited to 'sys/kern/kern_clock.c')
-rw-r--r--sys/kern/kern_clock.c10
1 files changed, 5 insertions, 5 deletions
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