diff options
Diffstat (limited to 'sys/net')
-rw-r--r-- | sys/net/if_llatbl.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/net/if_llatbl.c b/sys/net/if_llatbl.c index f934af5..c9b41f9 100644 --- a/sys/net/if_llatbl.c +++ b/sys/net/if_llatbl.c @@ -170,9 +170,12 @@ lltable_free(struct lltable *llt) for (i=0; i < LLTBL_HASHTBL_SIZE; i++) { LIST_FOREACH_SAFE(lle, &llt->lle_head[i], lle_next, next) { + int canceled; - callout_drain(&lle->la_timer); + canceled = callout_drain(&lle->la_timer); LLE_WLOCK(lle); + if (canceled) + LLE_REMREF(lle); llentry_free(lle); } } |