Index: sys/netinet/in.c =================================================================== --- sys/netinet/in.c +++ sys/netinet/in.c @@ -1306,6 +1306,10 @@ #ifdef DIAGNOSTIC log(LOG_INFO, "ifaddr cache = %p is deleted\n", lle); #endif + /* cancel timer */ + if (callout_stop(&lle->lle_timer) > 0) + LLE_REMREF(lle); + llentry_free(lle); } Index: sys/netinet6/in6.c =================================================================== --- sys/netinet6/in6.c +++ sys/netinet6/in6.c @@ -2104,6 +2104,7 @@ lltable_unlink_entry(llt, lle); } + /* cancel timer */ if (callout_stop(&lle->lle_timer) > 0) LLE_REMREF(lle); @@ -2202,6 +2203,10 @@ #ifdef DIAGNOSTIC log(LOG_INFO, "ifaddr cache = %p is deleted\n", lle); #endif + /* cancel timer */ + if (callout_stop(&lle->lle_timer) > 0) + LLE_REMREF(lle); + llentry_free(lle); }