Date: Wed, 25 Feb 2009 10:59:56 +0000 (UTC) From: Robert Watson <rwatson@FreeBSD.org> To: cvs-src-old@freebsd.org Subject: cvs commit: src/sys/net route.c route.h rtsock.c src/sys/netinet in_rmx.c src/sys/netinet6 in6_ifattach.c in6_rmx.c Message-ID: <200902251101.n1PB1JDX044245@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
rwatson 2009-02-25 10:59:56 UTC
FreeBSD src repository
Modified files: (Branch: RELENG_7)
sys/net route.c route.h rtsock.c
sys/netinet in_rmx.c
sys/netinet6 in6_ifattach.c in6_rmx.c
Log:
SVN rev 189026 on 2009-02-25 10:59:56Z by rwatson
Merge r185747, r185774, r185807, r185849, r185964, r185965, r186051,
r186052 from head to stable/7; note that only the locking fixes and
invariants checking are added from r185747, but not the move to an
rwlock which would modify the kernel binary interface, nor the move
to a non-recursible lock, which is still seeing problem reports in
head. This corrects, among other things, a deadlock that may occur
when processing incoming ICMP redirects.
r185747:
- convert radix node head lock from mutex to rwlock
- make radix node head lock not recursive
- fix LOR in rtexpunge
- fix LOR in rtredirect
Reviewed by: sam
r185774:
- avoid recursively locking the radix node head lock
- assert that it is held if RTF_RNH_LOCKED is not passed
r185807:
Fix a bug introduced in r185747: rather than dereferencing an
uninitialized *rt to something undefined, use the fibnum that came in
as function argument.
Found with: Coverity Prevent(tm)
CID: 4168
r185849:
fix a reported panic when adding a route and one hit here when deleting
a route
- pass RTF_RNH_LOCKED to rtalloc1_fib in 2 cases where the lock is held
- make sure the rnh lock is held across rt_setgate and rt_getifa_fib
r185964:
Pass RTF_RNH_LOCKED to rtalloc1 sunce the node head is locked, this
avoids a recursive lock panic on inet6 detach.
Reviewed by: kmacy
r185965:
RTF_RNH_LOCKED needs to be passed in the flags arg not report,
apologies to thompsa
r186051:
in6_addroute is called through rnh_addadr which is always called with
the radix node head lock held exclusively. Pass RTF_RNH_LOCKED to
rtalloc so that rtalloc1_fib will not try to re-acquire the lock.
r186052:
don't acquire lock recursively
Oiginal commits to head were by kmacy, except r185964 by thompsa and
r185807 by bz.
A subset of this is a potential errata patch candidate.
Reviewed by: bz, kmacy
Tested by: Pete French <petefrench at ticketswi
Revision Changes Path
1.120.2.8 +38 -19 src/sys/net/route.c
1.65.2.5 +1 -0 src/sys/net/route.h
1.143.2.8 +10 -2 src/sys/net/rtsock.c
1.57.2.3 +1 -1 src/sys/netinet/in_rmx.c
1.39.2.4 +1 -1 src/sys/netinet6/in6_ifattach.c
1.18.2.4 +2 -2 src/sys/netinet6/in6_rmx.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200902251101.n1PB1JDX044245>
