diff options
author | 2012-09-04 10:03:16 +0000 | |
---|---|---|
committer | 2012-09-04 10:03:16 +0000 | |
commit | ae581523402525c4748adb8e0a93876c4a0fb8f0 (patch) | |
tree | a6736faeb4c9ff6f137dc8feb99bd0106c55177f | |
parent | sort sections; (diff) | |
download | wireguard-openbsd-ae581523402525c4748adb8e0a93876c4a0fb8f0.tar.xz wireguard-openbsd-ae581523402525c4748adb8e0a93876c4a0fb8f0.zip |
Raise IPL to IPL_SOFTNET in nd6_addr_add(). This code originally ran at
IPL_SOFTNET before it was factored out into a work queue task.
ok dlg
-rw-r--r-- | sys/netinet6/nd6_rtr.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/netinet6/nd6_rtr.c b/sys/netinet6/nd6_rtr.c index 9b7d91f2c8e..9b84a6f7ade 100644 --- a/sys/netinet6/nd6_rtr.c +++ b/sys/netinet6/nd6_rtr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: nd6_rtr.c,v 1.62 2012/08/28 20:32:02 sperreault Exp $ */ +/* $OpenBSD: nd6_rtr.c,v 1.63 2012/09/04 10:03:16 stsp Exp $ */ /* $KAME: nd6_rtr.c,v 1.97 2001/02/07 11:09:13 itojun Exp $ */ /* @@ -1298,7 +1298,9 @@ nd6_addr_add(void *prptr, void *arg2) struct nd_prefix *pr = (struct nd_prefix *)prptr; struct in6_ifaddr *ia6 = NULL; struct ifaddr *ifa; - int ifa_plen, autoconf, privacy; + int ifa_plen, autoconf, privacy, s; + + s = splsoftnet(); autoconf = 1; privacy = (pr->ndpr_ifp->if_xflags & IFXF_INET6_NOPRIVACY) == 0; @@ -1362,6 +1364,8 @@ nd6_addr_add(void *prptr, void *arg2) pfxlist_onlink_check(); pr->ndpr_refcnt--; + + splx(s); } /* |