cvs commit: src/sys/net if_atmsubr.c if_fwsubr.c if_iso88025subr.c
route.c rtsock.c src/sys/netinet if_ether.c src/sys/netinet6 nd6.c
Gleb Smirnoff
glebius at FreeBSD.org
Thu Nov 3 04:02:14 PST 2005
glebius 2005-11-03 12:02:11 UTC
FreeBSD src repository
Modified files: (Branch: RELENG_5)
sys/net if_atmsubr.c if_fwsubr.c
if_iso88025subr.c route.c rtsock.c
sys/netinet if_ether.c
sys/netinet6 nd6.c
Log:
Several fixes to ARP and route locking, that were done during 6.0 release
cycle, and are also applicable to RELENG_5:
o Make rt_check() return a locked rtentry.
o Make rt_check() function more strict:
- rt0 passed to rt_check() must not be NULL, assert this.
- rt returned by rt_check() must be valid locked rtentry,
if no error occured.
o Modify callers, so that they never pass NULL rt0
to rt_check().
o Modify callers, so that they unlock rtentry.
o Fix races in ARP code. See if_ether.c 1.139 for more information.
o Fix LORs in ARP code. See if_ether.c 1.141 for more information.
o Lock rtentry before dropping radix lock.
o Send published ARP replies only on correct interface. [1]
o Drop rtentry lock before calling rt_getifa(). [2]
o Fixes to rt_setgate():
- To avoid recursive rtentry locking.
- Do not change routes in case of failure.
- Return EADDRINUSE instead of bogus EDQUOT [3]
Revisions merged:
net/if_atmsubr.c - 1.39, 1.41
net/if_fwsubr.c - 1.13, 1.15
net/if_iso88025subr.c - 1.69, 1.71
net/route.c - 1.110, 1.111, 1.113
net/rtsock.c - 1.110, 1.111, 1.126, 1.130
netinet6/nd6.c - 1.51-1.53
netinet/if_ether.c - 1.139, 1.140, 1.141
PR: kern/75634 [1]
PR: kern/69356 [2]
PR: kern/64090 [3]
Revision Changes Path
1.35.2.2 +7 -4 src/sys/net/if_atmsubr.c
1.5.2.4 +7 -4 src/sys/net/if_fwsubr.c
1.65.2.2 +7 -4 src/sys/net/if_iso88025subr.c
1.106.2.3 +70 -74 src/sys/net/route.c
1.113.2.6 +7 -5 src/sys/net/rtsock.c
1.128.2.8 +209 -165 src/sys/netinet/if_ether.c
1.43.2.9 +11 -7 src/sys/netinet6/nd6.c
More information about the cvs-src
mailing list