From bc73e3c3699aa8edb5614c8213055b475c6b2fb2 Mon Sep 17 00:00:00 2001 From: kmacy Date: Wed, 24 Dec 2008 05:31:26 +0000 Subject: Fix missed unlock and reference drop of lle Found by: pho --- sys/netinet/if_ether.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'sys/netinet') diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c index 31a13c9..4e7086a 100644 --- a/sys/netinet/if_ether.c +++ b/sys/netinet/if_ether.c @@ -156,12 +156,12 @@ arptimer(void *arg) ifp = lle->lle_tbl->llt_ifp; IF_AFDATA_LOCK(ifp); LLE_WLOCK(lle); - if ((lle->la_flags & LLE_DELETED) || - (time_second >= lle->la_expire)) { - if (!callout_pending(&lle->la_timer) && - callout_active(&lle->la_timer)) - (void) llentry_free(lle); - } else { + if (((lle->la_flags & LLE_DELETED) + || (time_second >= lle->la_expire)) + && (!callout_pending(&lle->la_timer) && + callout_active(&lle->la_timer))) + (void) llentry_free(lle); + else { /* * Still valid, just drop our reference */ -- cgit v1.1