freebsd-dev/sys/netinet
Robert Watson cce83ffb5a 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
2004-11-23 17:21:30 +00:00
..
libalias For variables that are only checked with defined(), don't provide 2004-10-24 15:33:08 +00:00
accf_data.c
accf_http.c
icmp6.h
icmp_var.h
if_atm.c
if_atm.h
if_ether.c Check that rt_mask(rt) is non-NULL before dereferencing it, in the 2004-10-26 03:31:58 +00:00
if_ether.h
igmp_var.h
igmp.c
igmp.h
in_cksum.c
in_gif.c
in_gif.h
in_pcb.c Push acquisition of the accept mutex out of sofree() into the caller 2004-10-18 22:19:43 +00:00
in_pcb.h Add a macro for the destruction of INP_INFO_LOCK's used by loadable modules. 2004-10-19 14:34:13 +00:00
in_proto.c Convert IPDIVERT into a loadable module. This makes use of the dynamic loadability 2004-10-19 21:14:57 +00:00
in_rmx.c
in_systm.h
in_var.h Properly declare the "net.inet" sysctl subtree. 2004-10-19 21:06:14 +00:00
in.c Fix host route addition for more than one address to a loopback interface 2004-11-17 23:14:03 +00:00
in.h Pre-emptively define IPPROTO_SPACER to 32767, the same value as PROTO_SPACER 2004-10-19 20:59:01 +00:00
ip6.h
ip_divert.c - Since divert protocol is not connection oriented, remove SS_ISCONNECTED flag 2004-11-18 13:49:18 +00:00
ip_divert.h Convert IPDIVERT into a loadable module. This makes use of the dynamic loadability 2004-10-19 21:14:57 +00:00
ip_dummynet.c
ip_dummynet.h
ip_ecn.c
ip_ecn.h
ip_encap.c
ip_encap.h
ip_fastfwd.c Fix a double-free in the 'hlen > m->m_len' sanity check. 2004-11-09 09:40:32 +00:00
ip_fw2.c Remove RFC1644 T/TCP support from the TCP side of the network stack. 2004-11-02 22:22:22 +00:00
ip_fw_pfil.c Convert IPDIVERT into a loadable module. This makes use of the dynamic loadability 2004-10-19 21:14:57 +00:00
ip_fw.h Add support to IPFW for matching by TCP data length. 2004-10-03 00:47:15 +00:00
ip_gre.c
ip_gre.h
ip_icmp.c Remove the last two global variables that are used to store packet state while 2004-09-15 20:13:26 +00:00
ip_icmp.h
ip_id.c
ip_input.c Support for dynamically loadable and unloadable IP protocols in the ipmux. 2004-10-19 15:45:57 +00:00
ip_mroute.c When running with debug.mpsafenet=0, initialize IP multicast routing 2004-10-07 14:13:35 +00:00
ip_mroute.h
ip_output.c Add an additional struct inpcb * argument to pfil(9) in order to enable 2004-09-29 04:54:33 +00:00
ip_var.h Support for dynamically loadable and unloadable IP protocols in the ipmux. 2004-10-19 15:45:57 +00:00
ip.h
ipprotosw.h
pim_var.h
pim.h
raw_ip.c Initialize struct pr_userreqs in new/sparse style and fill in common 2004-11-08 14:44:54 +00:00
tcp_debug.c
tcp_debug.h
tcp_fsm.h s/send/sent/ in comment describing TCPS_SYN_RECEIVED. 2004-11-21 14:38:04 +00:00
tcp_hostcache.c Remove RFC1644 T/TCP support from the TCP side of the network stack. 2004-11-02 22:22:22 +00:00
tcp_input.c tcp_timewait() performs multiple non-atomic reads on the tcptw 2004-11-23 17:21:30 +00:00
tcp_output.c Remove RFC1644 T/TCP support from the TCP side of the network stack. 2004-11-02 22:22:22 +00:00
tcp_reass.c tcp_timewait() performs multiple non-atomic reads on the tcptw 2004-11-23 17:21:30 +00:00
tcp_sack.c Add a matching tunable for net.inet.tcp.sack.enable sysctl. 2004-10-26 08:59:09 +00:00
tcp_seq.h Remove RFC1644 T/TCP support from the TCP side of the network stack. 2004-11-02 22:22:22 +00:00
tcp_subr.c tcp_timewait() performs multiple non-atomic reads on the tcptw 2004-11-23 17:21:30 +00:00
tcp_syncache.c Remove RFC1644 T/TCP support from the TCP side of the network stack. 2004-11-02 22:22:22 +00:00
tcp_timer.c tcp_timewait() performs multiple non-atomic reads on the tcptw 2004-11-23 17:21:30 +00:00
tcp_timer.h
tcp_timewait.c tcp_timewait() performs multiple non-atomic reads on the tcptw 2004-11-23 17:21:30 +00:00
tcp_usrreq.c Initialize struct pr_userreqs in new/sparse style and fill in common 2004-11-08 14:44:54 +00:00
tcp_var.h Remove RFC1644 T/TCP support from the TCP side of the network stack. 2004-11-02 22:22:22 +00:00
tcp.h Remove RFC1644 T/TCP support from the TCP side of the network stack. 2004-11-02 22:22:22 +00:00
tcpip.h
udp_usrreq.c Initialize struct pr_userreqs in new/sparse style and fill in common 2004-11-08 14:44:54 +00:00
udp_var.h
udp.h