cvs commit: src/sys/netinet tcp_input.c tcp_subr.c tcp_timer.c
Robert Watson
rwatson at FreeBSD.org
Sat Dec 25 14:44:05 PST 2004
rwatson 2004-12-25 22:44:04 UTC
FreeBSD src repository
Modified files: (Branch: RELENG_5)
sys/netinet tcp_input.c tcp_subr.c tcp_timer.c
Log:
Merge tcp_input.c:1.257, tcp_subr.c:1.211, tcp_timer.c:1.69 from HEAD
to RELENG_5:
date: 2004/11/23 17:21:30; author: rwatson; state: Exp; lines: +4 -0
date: 2004/11/23 17:21:30; author: rwatson; state: Exp; lines: +2 -0
date: 2004/11/23 17:21:30; author: rwatson; state: Exp; lines: +9 -0
tcp_timewait() performs multiple non-atomic reads on the tcptw
structure, so assert the inpcb lock associated with the tcptw.
Also assert the tcbinfo lock, as tcp_timewait() may call
tcp_twclose() or tcp_2msl_rest(), which require it. Since
tcp_timewait() is already called with that lock from tcp_input(),
this doesn't change current locking, merely documents reasons for
it.
In tcp_twstart(), assert the tcbinfo lock, as tcp_timer_2msl_rest()
is called, which requires that lock.
In tcp_twclose(), assert the tcbinfo lock, as tcp_timer_2msl_stop()
is called, which requires that lock.
Document the locking strategy for the time wait queues in tcp_timer.c,
which consists of protecting the time wait queues in the same manner
as the tcbinfo structure (using the tcbinfo lock).
In tcp_timer_2msl_reset(), assert the tcbinfo lock, as the time wait
queues are modified.
In tcp_timer_2msl_stop(), assert the tcbinfo lock, as the time wait
queues may be modified.
In tcp_timer_2msl_tw(), assert the tcbinfo lock, as the time wait
queues may be modified.
MFC after: 2 weeks
Revision Changes Path
1.252.2.6 +4 -0 src/sys/netinet/tcp_input.c
1.201.2.8 +2 -0 src/sys/netinet/tcp_subr.c
1.66.2.2 +9 -0 src/sys/netinet/tcp_timer.c
More information about the cvs-all
mailing list