From fbc2ca1bef607ab0bc1815cec911edd6dacd0968 Mon Sep 17 00:00:00 2001 From: Kip Macy Date: Tue, 16 Dec 2008 00:20:49 +0000 Subject: [PATCH] unlock and destroy an llentry's lock before freeing Found by: sam --- sys/netinet/in.c | 2 ++ sys/netinet6/in6.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/sys/netinet/in.c b/sys/netinet/in.c index 852ef6dbe20..94535b108bc 100644 --- a/sys/netinet/in.c +++ b/sys/netinet/in.c @@ -1060,6 +1060,8 @@ in_lltable_new(const struct sockaddr *l3addr, u_int flags) static void in_lltable_free(struct lltable *llt, struct llentry *lle) { + LLE_WUNLOCK(lle); + LLE_LOCK_DESTROY(lle); free(lle, M_LLTABLE); } diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c index 81272811ad8..613853337ee 100644 --- a/sys/netinet6/in6.c +++ b/sys/netinet6/in6.c @@ -2115,6 +2115,8 @@ in6_lltable_new(const struct sockaddr *l3addr, u_int flags) static void in6_lltable_free(struct lltable *llt, struct llentry *lle) { + LLE_WUNLOCK(lle); + LLE_LOCK_DESTROY(lle); free(lle, M_LLTABLE); }