Index: sys/netpfil/ipfw/ip_fw_dynamic.c =================================================================== --- sys/netpfil/ipfw/ip_fw_dynamic.c +++ sys/netpfil/ipfw/ip_fw_dynamic.c @@ -2441,6 +2441,7 @@ static void dyn_send_keepalive_ipv4(struct ip_fw_chain *chain) { + struct epoch_tracker et; struct mbufq q; struct mbuf *m; struct dyn_ipv4_state *s; @@ -2468,8 +2469,10 @@ } } IPFW_UH_RUNLOCK(chain); + NET_EPOCH_ENTER(et); while ((m = mbufq_dequeue(&q)) != NULL) ip_output(m, NULL, NULL, 0, NULL, NULL); + NET_EPOCH_EXIT(et); } #ifdef INET6 @@ -2548,6 +2551,7 @@ static void dyn_send_keepalive_ipv6(struct ip_fw_chain *chain) { + struct epoch_tracker et; struct mbufq q; struct mbuf *m; struct dyn_ipv6_state *s; @@ -2575,8 +2579,10 @@ } } IPFW_UH_RUNLOCK(chain); + NET_EPOCH_ENTER(et); while ((m = mbufq_dequeue(&q)) != NULL) ip6_output(m, NULL, NULL, 0, NULL, NULL, NULL); + NET_EPOCH_EXIT(et); } #endif /* INET6 */