summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorthompsa <thompsa@FreeBSD.org>2008-12-12 01:46:59 +0000
committerthompsa <thompsa@FreeBSD.org>2008-12-12 01:46:59 +0000
commit7a14f2c921084d5d4f4ab7a0399d20e3faa813c7 (patch)
tree7d9ac37fc2e7558c3c6232c73fb5f286a8775d43
parent7073cd1683bb1a98c3dfaf3cf2092fdc59efcb16 (diff)
downloadFreeBSD-src-7a14f2c921084d5d4f4ab7a0399d20e3faa813c7.zip
FreeBSD-src-7a14f2c921084d5d4f4ab7a0399d20e3faa813c7.tar.gz
Pass RTF_RNH_LOCKED to rtalloc1 sunce the node head is locked, this avoids a
recursive lock panic on inet6 detach. Reviewed by: kmacy
-rw-r--r--sys/netinet6/in6_ifattach.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/netinet6/in6_ifattach.c b/sys/netinet6/in6_ifattach.c
index 7b5c2f9..f2e5437 100644
--- a/sys/netinet6/in6_ifattach.c
+++ b/sys/netinet6/in6_ifattach.c
@@ -834,7 +834,7 @@ in6_ifdetach(struct ifnet *ifp)
/* XXX grab lock first to avoid LOR */
if (V_rt_tables[0][AF_INET6] != NULL) {
RADIX_NODE_HEAD_LOCK(V_rt_tables[0][AF_INET6]);
- rt = rtalloc1((struct sockaddr *)&sin6, 0, 0UL);
+ rt = rtalloc1((struct sockaddr *)&sin6, RTF_RNH_LOCKED, 0UL);
if (rt) {
if (rt->rt_ifp == ifp)
rtexpunge(rt);
OpenPOWER on IntegriCloud