Don't leak the LLE lock if the arptimer callout is pending or inactive.

Reported by:	David Rhodus
MFC after:	1 month
This commit is contained in:
John Baldwin 2010-11-02 13:00:56 +00:00
parent bd19a23baa
commit 33b31db666

View File

@ -178,16 +178,16 @@ arptimer(void *arg)
LLE_REMREF(lle);
(void) llentry_free(lle);
ARPSTAT_INC(timeouts);
}
} else {
#ifdef DIAGNOSTIC
else {
struct sockaddr *l3addr = L3_ADDR(lle);
log(LOG_INFO,
"arptimer issue: %p, IPv4 address: \"%s\"\n", lle,
inet_ntoa(
((const struct sockaddr_in *)l3addr)->sin_addr));
}
#endif
LLE_WUNLOCK(lle);
}
}
IF_AFDATA_UNLOCK(ifp);
CURVNET_RESTORE();