diff options
author | thompsa <thompsa@FreeBSD.org> | 2008-12-12 01:46:59 +0000 |
---|---|---|
committer | thompsa <thompsa@FreeBSD.org> | 2008-12-12 01:46:59 +0000 |
commit | 7a14f2c921084d5d4f4ab7a0399d20e3faa813c7 (patch) | |
tree | 7d9ac37fc2e7558c3c6232c73fb5f286a8775d43 | |
parent | 7073cd1683bb1a98c3dfaf3cf2092fdc59efcb16 (diff) | |
download | FreeBSD-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.c | 2 |
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); |