timeout/untimeout ==> callout_*
authorJoerg Sonnenberger <joerg@dragonflybsd.org>
Thu, 16 Sep 2004 23:14:29 +0000 (23:14 +0000)
committerJoerg Sonnenberger <joerg@dragonflybsd.org>
Thu, 16 Sep 2004 23:14:29 +0000 (23:14 +0000)
This moves the reset of the arptimer after the list processing. There's no
protection against multiple runs here, so this makes more sense.

sys/netinet/if_ether.c
sys/netinet/in_rmx.c

index 94f3e96..09afbc8 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)if_ether.c  8.1 (Berkeley) 6/10/93
  * $FreeBSD: src/sys/netinet/if_ether.c,v 1.64.2.23 2003/04/11 07:23:15 fjoe Exp $
- * $DragonFly: src/sys/netinet/if_ether.c,v 1.14 2004/07/17 09:43:05 joerg Exp $
+ * $DragonFly: src/sys/netinet/if_ether.c,v 1.15 2004/09/16 23:14:29 joerg Exp $
  */
 
 /*
@@ -131,6 +131,8 @@ static struct llinfo_arp
 static void    in_arpinput (struct mbuf *);
 #endif
 
+static struct callout  arptimer_ch;
+
 /*
  * Timeout routine.  Age arp_tab entries periodically.
  */
@@ -143,13 +145,13 @@ arptimer(ignored_arg)
        struct llinfo_arp *la = LIST_FIRST(&llinfo_arp);
        struct llinfo_arp *ola;
 
-       timeout(arptimer, (caddr_t)0, arpt_prune * hz);
        while ((ola = la) != 0) {
                struct rtentry *rt = la->la_rt;
                la = LIST_NEXT(la, la_le);
                if (rt->rt_expire && rt->rt_expire <= time_second)
                        arptfree(ola); /* timer has expired, clear */
        }
+       callout_reset(&arptimer_ch, arpt_prune * hz, arptimer, NULL);
        splx(s);
 }
 
@@ -168,7 +170,8 @@ arp_rtrequest(req, rt, info)
 
        if (!arpinit_done) {
                arpinit_done = 1;
-               timeout(arptimer, (caddr_t)0, hz);
+               callout_init(&arptimer_ch);
+               callout_reset(&arptimer_ch, hz, arptimer, NULL);
        }
        if (rt->rt_flags & RTF_GATEWAY)
                return;
index 00b97e2..5292c1c 100644 (file)
@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/netinet/in_rmx.c,v 1.37.2.3 2002/08/09 14:49:23 ru Exp $
- * $DragonFly: src/sys/netinet/in_rmx.c,v 1.4 2004/01/07 11:04:23 dillon Exp $
+ * $DragonFly: src/sys/netinet/in_rmx.c,v 1.5 2004/09/16 23:14:29 joerg Exp $
  */
 
 /*
@@ -57,6 +57,8 @@
 #include <netinet/in_var.h>
 #include <netinet/ip_var.h>
 
+static struct callout  in_rtqtimo_ch;
+
 extern int     in_inithead (void **head, int off);
 
 #define RTPRF_OURS             RTF_PROTO3      /* set on routes we manage */
@@ -325,7 +327,7 @@ in_rtqtimo(void *rock)
 
        atv.tv_usec = 0;
        atv.tv_sec = arg.nextstop - time_second;
-       timeout(in_rtqtimo, rock, tvtohz_high(&atv));
+       callout_reset(&in_rtqtimo_ch, tvtohz_high(&atv), in_rtqtimo, rock);
 }
 
 void
@@ -362,6 +364,7 @@ in_inithead(void **head, int off)
        rnh->rnh_addaddr = in_addroute;
        rnh->rnh_matchaddr = in_matroute;
        rnh->rnh_close = in_clsroute;
+       callout_init(&in_rtqtimo_ch);
        in_rtqtimo(rnh);        /* kick off timeout first time */
        return 1;
 }