summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2003-06-25 20:56:40 +0000
committerimp <imp@FreeBSD.org>2003-06-25 20:56:40 +0000
commit27d211ac0c5f9c213f9253aa67ea882d09518b0e (patch)
treeaad752a46243b0119d04221862b3a35c63110f06 /sys/kern
parentbf27dce79bb1d92b4f410f062ba6daf5c51c50d3 (diff)
downloadFreeBSD-src-27d211ac0c5f9c213f9253aa67ea882d09518b0e.zip
FreeBSD-src-27d211ac0c5f9c213f9253aa67ea882d09518b0e.tar.gz
During a positive leap second, the tai_time offset should be
incremented at the start of the leap second, not after the leap second has been inserted. This is because at the start of the leap second, we set the time back one second. This setting back one second is the moment that the offset changes. The old code set it back after the leap second, but that's one second too late. The negative leap second case is handled correctly. Reviewed by: phk
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/kern_ntptime.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/kern_ntptime.c b/sys/kern/kern_ntptime.c
index 6490cbd..8bf109b 100644
--- a/sys/kern/kern_ntptime.c
+++ b/sys/kern/kern_ntptime.c
@@ -480,6 +480,7 @@ ntp_update_second(int64_t *adjustment, time_t *newsec)
else if ((*newsec) % 86400 == 0) {
(*newsec)--;
time_state = TIME_OOP;
+ time_tai++;
}
break;
@@ -500,7 +501,6 @@ ntp_update_second(int64_t *adjustment, time_t *newsec)
* Insert second in progress.
*/
case TIME_OOP:
- time_tai++;
time_state = TIME_WAIT;
break;
OpenPOWER on IntegriCloud