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@f5.com>
Tested by:	Mark Atkinson <m.atkinson@f5.com>
PR:		kern/128247 (in follow-up, unrelated to original report)
This commit is contained in:
Bjoern A. Zeeb 2009-02-04 10:35:27 +00:00
parent 1645994be5
commit 5f16e341d4
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=188113

View File

@ -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;