svn commit: r186468 - head/sys/netinet6
Kip Macy
kmacy at FreeBSD.org
Wed Dec 24 01:08:19 UTC 2008
Author: kmacy
Date: Wed Dec 24 01:08:18 2008
New Revision: 186468
URL: http://svn.freebsd.org/changeset/base/186468
Log:
avoid lock recursion by deferring the link check until after LLE lock is dropped
Modified:
head/sys/netinet6/nd6_nbr.c
Modified: head/sys/netinet6/nd6_nbr.c
==============================================================================
--- head/sys/netinet6/nd6_nbr.c Wed Dec 24 01:00:30 2008 (r186467)
+++ head/sys/netinet6/nd6_nbr.c Wed Dec 24 01:08:18 2008 (r186468)
@@ -603,6 +603,7 @@ nd6_na_input(struct mbuf *m, int off, in
int is_override;
char *lladdr = NULL;
int lladdrlen = 0;
+ int checklink = 0;
struct ifaddr *ifa;
struct llentry *ln = NULL;
union nd_opts ndopts;
@@ -739,7 +740,7 @@ nd6_na_input(struct mbuf *m, int off, in
* non-reachable to probably reachable, and might
* affect the status of associated prefixes..
*/
- pfxlist_onlink_check();
+ checklink = 1;
}
} else {
int llchange;
@@ -886,6 +887,9 @@ nd6_na_input(struct mbuf *m, int off, in
if (chain)
nd6_output_flush(ifp, ifp, chain, &sin6, NULL);
}
+ if (checklink)
+ pfxlist_onlink_check();
+
m_freem(m);
return;
More information about the svn-src-all
mailing list