summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorstsp <stsp@openbsd.org>2012-09-04 10:03:16 +0000
committerstsp <stsp@openbsd.org>2012-09-04 10:03:16 +0000
commitae581523402525c4748adb8e0a93876c4a0fb8f0 (patch)
treea6736faeb4c9ff6f137dc8feb99bd0106c55177f
parentsort sections; (diff)
downloadwireguard-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.c8
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);
}
/*