svn commit: r188113 - head/sys/netinet6
Bjoern A. Zeeb
bz at FreeBSD.org
Wed Feb 4 02:35:29 PST 2009
Author: bz
Date: Wed Feb 4 10:35:27 2009
New Revision: 188113
URL: http://svn.freebsd.org/changeset/base/188113
Log:
When iterating through the list trying to find a router in
defrouter_select(), NULL the cached llentry after unlocking
as we are no longer interested in it and with the second
iteration would try to unlock it again resulting in
panic: Lock (rw) lle not locked @ ...
Reported by: Mark Atkinson <m.atkinson at f5.com>
Tested by: Mark Atkinson <m.atkinson at f5.com>
PR: kern/128247 (in follow-up, unrelated to original report)
Modified:
head/sys/netinet6/nd6_rtr.c
Modified: head/sys/netinet6/nd6_rtr.c
==============================================================================
--- head/sys/netinet6/nd6_rtr.c Wed Feb 4 01:14:06 2009 (r188112)
+++ head/sys/netinet6/nd6_rtr.c Wed Feb 4 10:35:27 2009 (r188113)
@@ -651,8 +651,10 @@ defrouter_select(void)
selected_dr = dr;
}
IF_AFDATA_UNLOCK(dr->ifp);
- if (ln != NULL)
+ if (ln != NULL) {
LLE_RUNLOCK(ln);
+ ln = NULL;
+ }
if (dr->installed && installed_dr == NULL)
installed_dr = dr;
More information about the svn-src-head
mailing list