diff options
author | Stefan Sperling <stsp@cvs.openbsd.org> | 2012-09-04 10:03:17 +0000 |
---|---|---|
committer | Stefan Sperling <stsp@cvs.openbsd.org> | 2012-09-04 10:03:17 +0000 |
commit | 29c866cacd0cf2eb540530217427cabfde86356d (patch) | |
tree | f18414c9d84d6f190592e179b8f944ac766d0cd8 /sys/netinet6 | |
parent | e339c3f4a8e1681af6fe32378ec1f1c161b9cf27 (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.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); } /* |