summaryrefslogtreecommitdiff
path: root/sys/netinet6
diff options
context:
space:
mode:
authorStefan Sperling <stsp@cvs.openbsd.org>2012-09-04 10:03:17 +0000
committerStefan Sperling <stsp@cvs.openbsd.org>2012-09-04 10:03:17 +0000
commit29c866cacd0cf2eb540530217427cabfde86356d (patch)
treef18414c9d84d6f190592e179b8f944ac766d0cd8 /sys/netinet6
parente339c3f4a8e1681af6fe32378ec1f1c161b9cf27 (diff)
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
Diffstat (limited to 'sys/netinet6')
-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);
}
/*