diff options
author | cy <cy@FreeBSD.org> | 2013-09-21 04:05:38 +0000 |
---|---|---|
committer | cy <cy@FreeBSD.org> | 2013-09-21 04:05:38 +0000 |
commit | 15a9875829d8d06b17573b6f541659006869e005 (patch) | |
tree | 2a619ccbe590370b675eaa0143da52770c0503d0 /sys | |
parent | f85536e875960caa433c4e51cf2b4358851facdd (diff) | |
download | FreeBSD-src-15a9875829d8d06b17573b6f541659006869e005.zip FreeBSD-src-15a9875829d8d06b17573b6f541659006869e005.tar.gz |
Convert ipfilter from timeout(9) to callout(9).
Submitted by: jhb
Approved by: glebius (mentor)
Approved by: re (blanket)
Diffstat (limited to 'sys')
-rw-r--r-- | sys/contrib/ipfilter/netinet/ip_fil.h | 2 | ||||
-rw-r--r-- | sys/contrib/ipfilter/netinet/ip_fil_freebsd.c | 16 |
2 files changed, 14 insertions, 4 deletions
diff --git a/sys/contrib/ipfilter/netinet/ip_fil.h b/sys/contrib/ipfilter/netinet/ip_fil.h index 22a11c3..11e8b9b 100644 --- a/sys/contrib/ipfilter/netinet/ip_fil.h +++ b/sys/contrib/ipfilter/netinet/ip_fil.h @@ -1654,7 +1654,7 @@ typedef struct ipf_main_softc_s { ipftoken_t **ipf_token_tail; #if defined(__FreeBSD_version) && (__FreeBSD_version >= 300000) && \ defined(_KERNEL) - struct callout_handle ipf_slow_ch; + struct callout ipf_slow_ch; #endif #if defined(linux) && defined(_KERNEL) struct timer_list ipf_timer; diff --git a/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c b/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c index 9d26193..898869a 100644 --- a/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c +++ b/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c @@ -178,11 +178,13 @@ ipf_timer_func(arg) ipf_slowtimer(softc); if (softc->ipf_running == -1 || softc->ipf_running == 1) { -#if FREEBSD_GE_REV(300000) +#if 0 softc->ipf_slow_ch = timeout(ipf_timer_func, softc, hz/2); -#else - timeout(ipf_timer_func, softc, hz/2); #endif + callout_init(&softc->ipf_slow_ch, CALLOUT_MPSAFE); + callout_reset(&softc->ipf_slow_ch, + (hz / IPF_HZ_DIVIDE) * IPF_HZ_MULT, + ipf_timer_func, softc); } RWLOCK_EXIT(&softc->ipf_global); SPL_X(s); @@ -223,8 +225,13 @@ ipfattach(softc) ipid = 0; SPL_X(s); +#if 0 softc->ipf_slow_ch = timeout(ipf_timer_func, softc, (hz / IPF_HZ_DIVIDE) * IPF_HZ_MULT); +#endif + callout_init(&softc->ipf_slow_ch, CALLOUT_MPSAFE); + callout_reset(&softc->ipf_slow_ch, (hz / IPF_HZ_DIVIDE) * IPF_HZ_MULT, + ipf_timer_func, softc); return 0; } @@ -246,9 +253,12 @@ ipfdetach(softc) SPL_NET(s); +#if 0 if (softc->ipf_slow_ch.callout != NULL) untimeout(ipf_timer_func, softc, softc->ipf_slow_ch); bzero(&softc->ipf_slow, sizeof(softc->ipf_slow)); +#endif + callout_drain(&softc->ipf_slow_ch); #ifndef NETBSD_PF if (ipf_checkp != NULL) |