Author: cy
Date: Sat Sep 21 04:05:38 2013
New Revision: 255755
URL: http://svnweb.freebsd.org/changeset/base/255755

Log:
  Convert ipfilter from timeout(9) to callout(9).
  
  Submitted by: jhb
  Approved by:  glebius (mentor)
  Approved by:  re (blanket)

Modified:
  head/sys/contrib/ipfilter/netinet/ip_fil.h
  head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c

Modified: head/sys/contrib/ipfilter/netinet/ip_fil.h
==============================================================================
--- head/sys/contrib/ipfilter/netinet/ip_fil.h  Sat Sep 21 03:57:56 2013        
(r255754)
+++ head/sys/contrib/ipfilter/netinet/ip_fil.h  Sat Sep 21 04:05:38 2013        
(r255755)
@@ -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;

Modified: head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
==============================================================================
--- head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c  Sat Sep 21 03:57:56 
2013        (r255754)
+++ head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c  Sat Sep 21 04:05:38 
2013        (r255755)
@@ -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)
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to