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);
 }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to