freebsd-dev/sys
Navdeep Parhar 000da5202e cxgbe/tom: Add a flag to indicate that the L2 table entry for an
embryonic connection has been setup and never attempt to abort a tid
before this is done.  This fixes a bad race where a listening socket is
closed when the driver is in the middle of step (b) here.  The symptom
of this were "ARP miss" errors from the driver followed by tid leaks.

A hardware-offloaded passive open works this way:

a) A SYN "hits" the TCAM entry for a server tid and the chip delivers it
to the queue associated with the server tid (say, queue A).  It waits
for a response from the driver telling it what to do.

b) The driver decides it is ok to proceed.  It adds the new tid to the
list of embryonic connections associated with the server tid and then
hands off the SYN to the kernel's syncache to make sure that the kernel
okays it too.  If it does then the driver provides an L2 table entry,
queue id (say, queue B), etc. and instructs the chip to send the SYN/ACK
response.

c) The chip delivers a status to queue B depending on how the third step
of the 3-way handshake goes.  The driver removes the tid from its list
of embryonic connections and either expands the syncache entry or
destroys the tid.  In any case all subsequent messages for the new tid
will be delivered to queue B, not queue A.  Anything running in queue B
knows that the L2 entry has long been setup and the new flag is of no
interest from here on.  If the listener is closed it will deal with
so_comp as normal.

MFC after:	1 week
2012-11-29 19:10:04 +00:00
..
amd64 Move the declaration of vm_phys_paddr_to_vm_page() from vm/vm_page.h 2012-11-16 05:55:56 +00:00
arm Fix hardcoded bpp value 2012-11-29 05:46:46 +00:00
boot Discussed at-length on -arch. 2012-11-28 18:35:46 +00:00
bsm Add the wait6(2) system call. It takes POSIX waitid()-like process 2012-11-13 12:52:31 +00:00
cam Fix problem with the Samsung 840 PRO series SSD detection. 2012-11-26 20:07:10 +00:00
cddl MFV r243395: 2012-11-26 12:24:39 +00:00
compat MFS security patches which seem to have accidentally not reached HEAD: 2012-11-23 01:48:31 +00:00
conf Fix LINT build for arm: NOTES defines LDFLAGS by way of a make option 2012-11-29 03:48:39 +00:00
contrib Allow this file to build on FreeBSD. 2012-11-27 02:03:41 +00:00
crypto Revert previous commit... 2012-10-10 08:36:38 +00:00
ddb Small textdump enhancements. 2012-11-01 04:07:08 +00:00
dev cxgbe/tom: Add a flag to indicate that the L2 table entry for an 2012-11-29 19:10:04 +00:00
fs Update some definitions or make them match NetBSD's headers. 2012-11-28 15:48:32 +00:00
gdb
geom - Don't pass geom and provider names as format strings. 2012-11-20 12:32:18 +00:00
gnu/fs r16312 is not any longer real since many years (likely since when VFS 2012-11-19 22:43:45 +00:00
i386 Fix a minor warning in sys/i386/xen/clock.c. 2012-11-12 20:50:11 +00:00
ia64 Flip the semantic of M_NOWAIT to only require the allocation to not 2012-11-14 20:01:40 +00:00
isa
kern Using a long is the wrong type to represent the realmem and maxmbufmem 2012-11-29 07:30:42 +00:00
kgssapi
libkern Sync strlcpy with userland version. 2012-11-03 04:29:24 +00:00
mips Use bootverbose to control debug printfs from the Cavium Simple Executive 2012-11-24 02:12:24 +00:00
modules Merge ACPICA 20121114. 2012-11-20 21:01:59 +00:00
net - Use more appropriate loop (do { } while()) when generating ethernet address 2012-11-29 08:06:23 +00:00
net80211 Add a primitive to check if a lock is not owned. 2012-11-26 00:06:55 +00:00
netatalk
netgraph Switch the entire IPv4 stack to keep the IP packet header 2012-10-22 21:09:03 +00:00
netinet Remove unused and unnecessary CSUM_IP_FRAGS checksumming capability. 2012-11-27 19:31:49 +00:00
netinet6 Remove opt_inet.h, it isn't required here. 2012-11-20 14:09:37 +00:00
netipsec Do not reduce ip_len by size of IP header in the ip_input() 2012-10-23 08:33:13 +00:00
netipx
netnatm
netncp
netpfil Simplify sending keepalives. 2012-11-09 18:23:38 +00:00
netsmb Fix panic due to page faults while in kernel mode, under conditions of 2012-10-31 03:34:07 +00:00
nfs Add two new options to the nfssvc(2) syscall that allow 2012-10-14 22:33:17 +00:00
nfsclient r16312 is not any longer real since many years (likely since when VFS 2012-11-19 22:43:45 +00:00
nfsserver Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
nlm Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
ofed Redo r242842, now actually fixing the warnings, as follows: 2012-11-12 22:01:29 +00:00
opencrypto Revert previous commit... 2012-10-10 08:36:38 +00:00
pc98 Reduce diffs against i386. 2012-11-10 13:48:41 +00:00
pci Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
powerpc Setup BAT0 and BAT1 on the Wii. 2012-11-21 08:04:21 +00:00
rpc Modify the comment to take out the names and URL. 2012-10-25 19:30:58 +00:00
security Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
sparc64 Move the declaration of vm_phys_paddr_to_vm_page() from vm/vm_page.h 2012-11-16 05:55:56 +00:00
sys Using a long is the wrong type to represent the realmem and maxmbufmem 2012-11-29 07:30:42 +00:00
teken
tools Revert previous commit... 2012-10-10 08:36:38 +00:00
ufs r16312 is not any longer real since many years (likely since when VFS 2012-11-19 22:43:45 +00:00
vm Add support for the (relatively) new object type OBJT_MGTDEVICE to 2012-11-28 18:29:34 +00:00
x86 Provide the reading and display of the Standard Extended Features, 2012-11-01 15:14:37 +00:00
xdr
xen Move the corresponding MTX_SYSINIT() next to their struct mtx declaration 2012-10-26 17:31:35 +00:00
Makefile