summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormpi <mpi@openbsd.org>2016-10-04 13:54:32 +0000
committermpi <mpi@openbsd.org>2016-10-04 13:54:32 +0000
commit7887537f925f0c8b87f94c1aa492e660f9a78951 (patch)
tree555afa0076a8355eaca42567217e50d4cfe88462
parentremove may_check_data logic, since signatures are now handled externally (diff)
downloadwireguard-openbsd-7887537f925f0c8b87f94c1aa492e660f9a78951.tar.xz
wireguard-openbsd-7887537f925f0c8b87f94c1aa492e660f9a78951.zip
Convert timeouts that need a process context to timeout_set_proc(9).
The current reason is that rtalloc_mpath(9) inside ip_output() might end up inserting a RTF_CLONED route and that require a write lock. ok kettenis@, bluhm@
-rw-r--r--sys/net/if_pflow.c11
-rw-r--r--sys/net/if_pfsync.c10
-rw-r--r--sys/netinet/ip_carp.c8
-rw-r--r--sys/netinet/tcp_timer.h4
-rw-r--r--sys/netinet/tcp_var.h4
5 files changed, 19 insertions, 18 deletions
diff --git a/sys/net/if_pflow.c b/sys/net/if_pflow.c
index 93c5d94218a..e3aeba6694f 100644
--- a/sys/net/if_pflow.c
+++ b/sys/net/if_pflow.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_pflow.c,v 1.61 2016/04/29 08:55:03 krw Exp $ */
+/* $OpenBSD: if_pflow.c,v 1.62 2016/10/04 13:54:32 mpi Exp $ */
/*
* Copyright (c) 2011 Florian Obser <florian@narrans.de>
@@ -548,15 +548,16 @@ pflow_init_timeouts(struct pflow_softc *sc)
if (timeout_initialized(&sc->sc_tmo_tmpl))
timeout_del(&sc->sc_tmo_tmpl);
if (!timeout_initialized(&sc->sc_tmo))
- timeout_set(&sc->sc_tmo, pflow_timeout, sc);
+ timeout_set_proc(&sc->sc_tmo, pflow_timeout, sc);
break;
case PFLOW_PROTO_10:
if (!timeout_initialized(&sc->sc_tmo_tmpl))
- timeout_set(&sc->sc_tmo_tmpl, pflow_timeout_tmpl, sc);
+ timeout_set_proc(&sc->sc_tmo_tmpl, pflow_timeout_tmpl,
+ sc);
if (!timeout_initialized(&sc->sc_tmo))
- timeout_set(&sc->sc_tmo, pflow_timeout, sc);
+ timeout_set_proc(&sc->sc_tmo, pflow_timeout, sc);
if (!timeout_initialized(&sc->sc_tmo6))
- timeout_set(&sc->sc_tmo6, pflow_timeout6, sc);
+ timeout_set_proc(&sc->sc_tmo6, pflow_timeout6, sc);
timeout_add_sec(&sc->sc_tmo_tmpl, PFLOW_TMPL_TIMEOUT);
break;
diff --git a/sys/net/if_pfsync.c b/sys/net/if_pfsync.c
index fa085f03cc1..00587f0d04e 100644
--- a/sys/net/if_pfsync.c
+++ b/sys/net/if_pfsync.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_pfsync.c,v 1.234 2016/09/27 04:57:17 dlg Exp $ */
+/* $OpenBSD: if_pfsync.c,v 1.235 2016/10/04 13:54:32 mpi Exp $ */
/*
* Copyright (c) 2002 Michael Shalayeff
@@ -328,9 +328,9 @@ pfsync_clone_create(struct if_clone *ifc, int unit)
IFQ_SET_MAXLEN(&ifp->if_snd, IFQ_MAXLEN);
ifp->if_hdrlen = sizeof(struct pfsync_header);
ifp->if_mtu = ETHERMTU;
- timeout_set(&sc->sc_tmo, pfsync_timeout, sc);
- timeout_set(&sc->sc_bulk_tmo, pfsync_bulk_update, sc);
- timeout_set(&sc->sc_bulkfail_tmo, pfsync_bulk_fail, sc);
+ timeout_set_proc(&sc->sc_tmo, pfsync_timeout, sc);
+ timeout_set_proc(&sc->sc_bulk_tmo, pfsync_bulk_update, sc);
+ timeout_set_proc(&sc->sc_bulkfail_tmo, pfsync_bulk_fail, sc);
if_attach(ifp);
if_alloc_sadl(ifp);
@@ -1720,7 +1720,7 @@ pfsync_defer(struct pf_state *st, struct mbuf *m)
sc->sc_deferred++;
TAILQ_INSERT_TAIL(&sc->sc_deferrals, pd, pd_entry);
- timeout_set(&pd->pd_tmo, pfsync_defer_tmo, pd);
+ timeout_set_proc(&pd->pd_tmo, pfsync_defer_tmo, pd);
timeout_add_msec(&pd->pd_tmo, 20);
schednetisr(NETISR_PFSYNC);
diff --git a/sys/netinet/ip_carp.c b/sys/netinet/ip_carp.c
index 4ef07cb7666..9eb5552cbb5 100644
--- a/sys/netinet/ip_carp.c
+++ b/sys/netinet/ip_carp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ip_carp.c,v 1.293 2016/07/25 16:44:04 benno Exp $ */
+/* $OpenBSD: ip_carp.c,v 1.294 2016/10/04 13:54:32 mpi Exp $ */
/*
* Copyright (c) 2002 Michael Shalayeff. All rights reserved.
@@ -831,9 +831,9 @@ carp_new_vhost(struct carp_softc *sc, int vhid, int advskew)
vhe->vhid = vhid;
vhe->advskew = advskew;
vhe->state = INIT;
- timeout_set(&vhe->ad_tmo, carp_send_ad, vhe);
- timeout_set(&vhe->md_tmo, carp_master_down, vhe);
- timeout_set(&vhe->md6_tmo, carp_master_down, vhe);
+ timeout_set_proc(&vhe->ad_tmo, carp_send_ad, vhe);
+ timeout_set_proc(&vhe->md_tmo, carp_master_down, vhe);
+ timeout_set_proc(&vhe->md6_tmo, carp_master_down, vhe);
KERNEL_ASSERT_LOCKED(); /* touching carp_vhosts */
diff --git a/sys/netinet/tcp_timer.h b/sys/netinet/tcp_timer.h
index 67daccdfb32..4396e1082b8 100644
--- a/sys/netinet/tcp_timer.h
+++ b/sys/netinet/tcp_timer.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: tcp_timer.h,v 1.13 2011/07/06 23:44:20 sthen Exp $ */
+/* $OpenBSD: tcp_timer.h,v 1.14 2016/10/04 13:54:32 mpi Exp $ */
/* $NetBSD: tcp_timer.h,v 1.6 1995/03/26 20:32:37 jtc Exp $ */
/*
@@ -116,7 +116,7 @@ const char *tcptimers[] =
* Init, arm, disarm, and test TCP timers.
*/
#define TCP_TIMER_INIT(tp, timer) \
- timeout_set(&(tp)->t_timer[(timer)], tcp_timer_funcs[(timer)], tp)
+ timeout_set_proc(&(tp)->t_timer[(timer)], tcp_timer_funcs[(timer)], tp)
#define TCP_TIMER_ARM(tp, timer, nticks) \
timeout_add(&(tp)->t_timer[(timer)], (nticks) * (hz / PR_SLOWHZ))
diff --git a/sys/netinet/tcp_var.h b/sys/netinet/tcp_var.h
index ebf72fade0c..3ea73653964 100644
--- a/sys/netinet/tcp_var.h
+++ b/sys/netinet/tcp_var.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: tcp_var.h,v 1.115 2016/07/20 19:57:53 bluhm Exp $ */
+/* $OpenBSD: tcp_var.h,v 1.116 2016/10/04 13:54:32 mpi Exp $ */
/* $NetBSD: tcp_var.h,v 1.17 1996/02/13 23:44:24 christos Exp $ */
/*
@@ -217,7 +217,7 @@ extern int tcp_delack_ticks;
void tcp_delack(void *);
#define TCP_INIT_DELACK(tp) \
- timeout_set(&(tp)->t_delack_to, tcp_delack, tp)
+ timeout_set_proc(&(tp)->t_delack_to, tcp_delack, tp)
#define TCP_RESTART_DELACK(tp) \
timeout_add(&(tp)->t_delack_to, tcp_delack_ticks)