Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Sep 2010 19:26:56 +0000 (UTC)
From:      Xin LI <delphij@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/netinet in_rmx.c src/sys/netinet6 in6_rmx.c
Message-ID:  <201009271927.o8RJREXE077790@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
delphij     2010-09-27 19:26:56 UTC

  FreeBSD src repository

  Modified files:
    sys/netinet          in_rmx.c 
    sys/netinet6         in6_rmx.c 
  Log:
  SVN rev 213225 on 2010-09-27 19:26:56Z by delphij
  
  Add a bandaid for a long-standing race condition during route entry
  un-expiring.
  
  The previous version of code have no locking when testing rt_refcnt.
  The result of the lack of locking may result in a condition where
  a routing entry have a reference count but at the same time have
  RTPRF_OURS bit set and an expiration timer.  These would eventually
  lead to a panic:
  
          panic: rtqkill route really not free
  
  When the system have ICMP redirects accepted from local gateway
  in a moderate frequency, for instance.
  
  Commit this workaround for now until we have some better solution.
  
  PR:             kern/149804
  Reviewed by:    bz
  Tested by:      Zhao Xin, Pete French
  MFC after:      2 weeks
  
  Revision  Changes    Path
  1.82      +3 -2      src/sys/netinet/in_rmx.c
  1.48      +3 -1      src/sys/netinet6/in6_rmx.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201009271927.o8RJREXE077790>