diff options
Diffstat (limited to 'sys/kern/kern_tc.c')
-rw-r--r-- | sys/kern/kern_tc.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/kern/kern_tc.c b/sys/kern/kern_tc.c index e2607bf..d3d437d 100644 --- a/sys/kern/kern_tc.c +++ b/sys/kern/kern_tc.c @@ -647,12 +647,15 @@ pps_event(struct pps_state *pps, int event) static int tc_tick; SYSCTL_INT(_kern_timecounter, OID_AUTO, tick, CTLFLAG_RD, &tick, 0, ""); -static void -tc_ticktock(void *dummy) +void +tc_ticktock(void) { + static int count; + if (++count < tc_tick) + return; + count = 0; tc_windup(); - timeout(tc_ticktock, NULL, tc_tick); } static void @@ -678,7 +681,6 @@ inittimecounter(void *dummy) /* warm up new timecounter (again) and get rolling. */ (void)timecounter->tc_get_timecount(timecounter); (void)timecounter->tc_get_timecount(timecounter); - tc_ticktock(NULL); } SYSINIT(timecounter, SI_SUB_CLOCKS, SI_ORDER_FIRST, inittimecounter, NULL) |