svn commit: r336405 - in head/sys: net netinet netinet6
Andrey V. Elsukov
ae at FreeBSD.org
Tue Jul 17 11:33:24 UTC 2018
Author: ae
Date: Tue Jul 17 11:33:23 2018
New Revision: 336405
URL: https://svnweb.freebsd.org/changeset/base/336405
Log:
Move invoking of callout_stop(&lle->lle_timer) into llentry_free().
This deduplicates the code a bit, and also implicitly adds missing
callout_stop() to in[6]_lltable_delete_entry() functions.
PR: 209682, 225927
Submitted by: hselasky (previous version)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D4605
Modified:
head/sys/net/if_llatbl.c
head/sys/netinet/in.c
head/sys/netinet6/in6.c
Modified: head/sys/net/if_llatbl.c
==============================================================================
--- head/sys/net/if_llatbl.c Tue Jul 17 11:21:02 2018 (r336404)
+++ head/sys/net/if_llatbl.c Tue Jul 17 11:33:23 2018 (r336405)
@@ -436,6 +436,9 @@ llentry_free(struct llentry *lle)
pkts_dropped = lltable_drop_entry_queue(lle);
+ /* cancel timer */
+ if (callout_stop(&lle->lle_timer) > 0)
+ LLE_REMREF(lle);
LLE_FREE_LOCKED(lle);
return (pkts_dropped);
@@ -522,8 +525,6 @@ lltable_free(struct lltable *llt)
IF_AFDATA_WUNLOCK(llt->llt_ifp);
CK_LIST_FOREACH_SAFE(lle, &dchain, lle_chain, next) {
- if (callout_stop(&lle->lle_timer) > 0)
- LLE_REMREF(lle);
llentry_free(lle);
}
Modified: head/sys/netinet/in.c
==============================================================================
--- head/sys/netinet/in.c Tue Jul 17 11:21:02 2018 (r336404)
+++ head/sys/netinet/in.c Tue Jul 17 11:33:23 2018 (r336405)
@@ -1165,10 +1165,6 @@ in_lltable_free_entry(struct lltable *llt, struct llen
lltable_unlink_entry(llt, lle);
}
- /* cancel timer */
- if (callout_stop(&lle->lle_timer) > 0)
- LLE_REMREF(lle);
-
/* Drop hold queue */
pkts_dropped = llentry_free(lle);
ARPSTAT_ADD(dropped, pkts_dropped);
Modified: head/sys/netinet6/in6.c
==============================================================================
--- head/sys/netinet6/in6.c Tue Jul 17 11:21:02 2018 (r336404)
+++ head/sys/netinet6/in6.c Tue Jul 17 11:33:23 2018 (r336405)
@@ -2135,9 +2135,6 @@ in6_lltable_free_entry(struct lltable *llt, struct lle
lltable_unlink_entry(llt, lle);
}
- if (callout_stop(&lle->lle_timer) > 0)
- LLE_REMREF(lle);
-
llentry_free(lle);
}
More information about the svn-src-head
mailing list