freebsd-dev/sys/netinet
Robert Watson c78cbc7b1d Instead of calling tcp_usr_detach() from tcp_usr_abort(), break out
common pcb tear-down logic into tcp_detach(), which is called from
either.  Invoke tcp_drop() from the tcp_usr_abort() path rather than
tcp_disconnect(), as we want to drop it immediately not perform a
FIN sequence.  This is one reason why some people were experiencing
panics in sodealloc(), as the netisr and aborting thread were
simultaneously trying to tear down the socket.  This bug could often
be reproduced using repeated runs of the listenclose regression test.

MFC after:	3 months
PR:		96090
Reported by:	Peter Kostouros <kpeter at melbpc dot org dot au>, kris
Tested by:	Peter Kostouros <kpeter at melbpc dot org dot au>, kris
2006-04-24 08:20:02 +00:00
..
libalias Fix prototype. 2005-11-24 14:17:35 +00:00
accf_data.c
accf_http.c
icmp6.h
icmp_var.h
if_atm.c
if_atm.h
if_ether.c Further refine the bridge hack in the arp code. Only do the special arp 2006-03-07 21:40:44 +00:00
if_ether.h
igmp_var.h
igmp.c Consolidate all IP Options handling functions into ip_options.[ch] and 2005-11-18 20:12:40 +00:00
igmp.h
in_cksum.c
in_gif.c Add some initial locking to gif(4). It doesn't covers the whole driver, 2006-01-30 08:39:09 +00:00
in_gif.h
in_pcb.c Assert the inpcb lock when rehashing an inpcb. 2006-04-22 19:15:20 +00:00
in_pcb.h Change inp_ppcb from caddr_t to void *, fix/remove associated related 2006-04-03 13:33:55 +00:00
in_proto.c Add RFC 3378 EtherIP support. This change makes it possible to add gif 2005-12-21 21:29:45 +00:00
in_rmx.c
in_systm.h
in_var.h Return mbuf pointer or NULL from ip_fastforward() as the mbuf pointer 2006-01-18 14:24:39 +00:00
in.c In in_control() remove the temporary in_ifaddr structure from the 2006-01-24 16:19:31 +00:00
in.h Use consistent indent character as other IPPROTO_* lines did. 2005-12-20 09:38:03 +00:00
ip6.h
ip_carp.c o Introduce carp_multicast_cleanup(), which removes and frees 2006-03-21 14:29:48 +00:00
ip_carp.h o Introduce carp_multicast_cleanup(), which removes and frees 2006-03-21 14:29:48 +00:00
ip_divert.c Allow for nmbclusters and maxsockets to be increased via sysctl. 2006-04-21 09:25:40 +00:00
ip_divert.h
ip_dummynet.c Obey opt_inet6.h in kernel build directory. 2006-02-20 12:30:32 +00:00
ip_dummynet.h When sending a packet from dummynet, indicate that we're forwarding 2006-02-14 06:36:39 +00:00
ip_ecn.c
ip_ecn.h
ip_encap.c
ip_encap.h
ip_fastfwd.c Merge rev. 1.240 of ip_output.c, so that IPFIREWALL_FORWARD_EXTENDED 2006-04-18 09:20:16 +00:00
ip_fw2.c - Do not leak read lock in IP_FW_TABLE_GETSIZE case of ipfw_ctl(). 2006-03-03 12:10:59 +00:00
ip_fw_pfil.c obey opt_inet6.h and opt_ipsec.h in kernel build directory. 2005-11-29 17:56:11 +00:00
ip_fw.h When sending a packet from dummynet, indicate that we're forwarding 2006-02-14 06:36:39 +00:00
ip_gre.c Convert last remaining function in ip_gre.c to ANSI C function 2006-01-22 01:08:30 +00:00
ip_gre.h Fix stack corruptions on amd64. 2006-01-21 10:44:34 +00:00
ip_icmp.c Add descriptions for the sysctls: 2006-03-20 21:44:12 +00:00
ip_icmp.h
ip_id.c
ip_input.c Allow for nmbclusters and maxsockets to be increased via sysctl. 2006-04-21 09:25:40 +00:00
ip_ipsec.c Move the IPSEC related code blocks to their own file to unclutter 2006-02-01 13:55:03 +00:00
ip_ipsec.h Move the IPSEC related code blocks to their own file to unclutter 2006-02-01 13:55:03 +00:00
ip_mroute.c In ip_mdq() compute the TV_DELTA the correct way around. 2006-01-24 17:09:12 +00:00
ip_mroute.h Brain-o (use standard int types now). 2006-02-01 06:15:37 +00:00
ip_options.c Remove 'ipprintfs' which were protected under DIAGNOSTIC. It doesn't 2005-11-19 17:04:52 +00:00
ip_options.h Move MAX_IPOPTLEN and struct ipoption back into ip_var.h as 2005-11-19 14:01:32 +00:00
ip_output.c Somewhat re-factor the read/write locking mechanism associated with the packet 2006-02-02 03:13:16 +00:00
ip_var.h Move MAX_IPOPTLEN and struct ipoption back into ip_var.h as 2005-11-19 14:01:32 +00:00
ip.h
ipprotosw.h
pim_var.h
pim.h
raw_ip.c Allow for nmbclusters and maxsockets to be increased via sysctl. 2006-04-21 09:25:40 +00:00
tcp_debug.c
tcp_debug.h
tcp_fsm.h
tcp_hostcache.c
tcp_input.c Allow for nmbclusters and maxsockets to be increased via sysctl. 2006-04-21 09:25:40 +00:00
tcp_output.c This patch fixes the problem where the current TCP code can not handle 2006-02-23 21:14:34 +00:00
tcp_reass.c Allow for nmbclusters and maxsockets to be increased via sysctl. 2006-04-21 09:25:40 +00:00
tcp_sack.c Eliminate debug code that catches bugs in the hinting of sack variables 2006-04-06 17:21:16 +00:00
tcp_seq.h
tcp_subr.c Replace isn_mtx direct use with ISN_*() lock macros so that locking 2006-04-23 12:27:42 +00:00
tcp_syncache.c Change soabort() from returning int to returning void, since all 2006-03-16 07:03:14 +00:00
tcp_timer.c Update TCP for infrastructural changes to the socket/pcb refcount model, 2006-04-01 16:36:36 +00:00
tcp_timer.h Have TCP Inflight disable itself if the RTT is below a certain 2006-02-16 19:38:07 +00:00
tcp_timewait.c Replace isn_mtx direct use with ISN_*() lock macros so that locking 2006-04-23 12:27:42 +00:00
tcp_usrreq.c Instead of calling tcp_usr_detach() from tcp_usr_abort(), break out 2006-04-24 08:20:02 +00:00
tcp_var.h Update TCP for infrastructural changes to the socket/pcb refcount model, 2006-04-01 16:36:36 +00:00
tcp.h Add missing TH_PUSH to the TH_FLAGS enumeration. 2006-02-18 16:50:08 +00:00
tcpip.h
udp_usrreq.c Allow for nmbclusters and maxsockets to be increased via sysctl. 2006-04-21 09:25:40 +00:00
udp_var.h
udp.h