Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Jan 2006 08:39:10 +0000 (UTC)
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/net if_gif.c if_gif.h src/sys/netinet in_gif.c src/sys/netinet6 in6_gif.c
Message-ID:  <200601300839.k0U8dAVt064693@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
glebius     2006-01-30 08:39:09 UTC

  FreeBSD src repository

  Modified files:
    sys/net              if_gif.c if_gif.h 
    sys/netinet          in_gif.c 
    sys/netinet6         in6_gif.c 
  Log:
  Add some initial locking to gif(4). It doesn't covers the whole driver,
  however IPv4-in-IPv4 tunnels are now stable on SMP. Details:
  
  - Add per-softc mutex.
  - Hold the mutex on output.
  
  The main problem was the rtentry, placed in softc. It could be
  freed by ip_output(). Meanwhile, another thread being in
  in_gif_output() can read and write this rtentry.
  
  Reported by:    many
  Tested by:      Alexander Shiryaev <aixp mail.ru>
  
  Revision  Changes    Path
  1.58      +15 -24    src/sys/net/if_gif.c
  1.19      +7 -1      src/sys/net/if_gif.h
  1.34      +2 -0      src/sys/netinet/in_gif.c
  1.24      +2 -0      src/sys/netinet6/in6_gif.c



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