cvs commit: src/sys/net if_gif.c if_gif.h src/sys/netinet in_gif.c
src/sys/netinet6 in6_gif.c
Gleb Smirnoff
glebius at FreeBSD.org
Mon Jan 30 00:39:10 PST 2006
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
More information about the cvs-all
mailing list