git: kernel - Fix possible race in syncache

Matthew Dillon dillon at
Wed Aug 18 12:26:54 PDT 2010

commit c1d0893d667ee18127bd3d2e371b820d65c5c0c2
Author: Matthew Dillon <dillon at>
Date:   Wed Aug 18 12:22:49 2010 -0700

    kernel - Fix possible race in syncache
    * syncache_timer_handler() can block while dropping a syncache entry,
      potentially causing the next pointer it uses in its list iteration
      to become stale.
    * Use a list marker to keep tabs on the list position instead of using
      a next pointer.
    * Remove critical sections, callouts do not preempt and syncache
      routines can only be entered from protocol threads or callouts.
    * Document the callout code as not preempting other threads.
    Reported-by: Peter Avalos <pavalos at>

Summary of changes:
 sys/kern/kern_timeout.c    |   19 ++++---------
 sys/netinet/tcp_syncache.c |   63 +++++++++++++++++++++++++++----------------
 sys/netinet/tcp_var.h      |    1 +
 3 files changed, 46 insertions(+), 37 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list