freebsd-nq/sys
Robert Watson a294c3664f Use sockbuf_pushsync() to synchronize stack and socket buffer state
in soreceive() after removing an MT_SONAME mbuf from the head of the
socket buffer.

When processing MT_CONTROL mbufs in soreceive(), first remove all of
the MT_CONTROL mbufs from the head of the socket buffer to a local
mbuf chain, then feed them into dom_externalize() as a set, which
both avoids thrashing the socket buffer lock when handling multiple
control mbufs, and also avoids races with other threads acting on
the socket buffer when the socket buffer mutex is released to enter
the externalize code.  Existing races that might occur if the protocol
externalize method blocked during processing have also been closed.

Now that we synchronize socket buffer and stack state following
modifications to the socket buffer, turn the manual synchronization
that previously followed control mbuf processing with a set of
assertions.  This can eventually be removed.

The soreceive() code is now substantially more MPSAFE.
2004-07-11 23:13:14 +00:00
..
alpha Now that the console setup is identical to that on other platforms, 2004-07-11 03:07:28 +00:00
amd64 MFi386: rev 1.213 -- fix DELAY while the debugger is active. 2004-07-11 18:07:55 +00:00
arm Define NSFBUFS and use it. 2004-07-08 21:03:35 +00:00
boot Change the following environment variables to kernel options: 2004-07-08 22:35:36 +00:00
cam Update for the KDB framework: 2004-07-10 20:56:43 +00:00
coda
compat Make NdisReadPcmciaAttributeMemory() and NdisWritePcmciaAttributeMemory() 2004-07-11 00:19:30 +00:00
conf Update for the KDB framework: 2004-07-11 01:44:07 +00:00
contrib Clean up a bunch of white-space difference with IPFilter source as well as 2004-07-11 10:13:05 +00:00
crypto
ddb Remove now unused files: 2004-07-11 01:50:09 +00:00
dev Until I'm ready to commit the better pccard probe/attach routines, effectively 2004-07-11 16:01:25 +00:00
doc Experimental support for using doxygen to generate kernel documentation. 2004-07-11 16:13:57 +00:00
fs Update for the KDB framework: 2004-07-10 21:21:13 +00:00
gdb Introduce the GDB debugger backend for the new KDB framework. The 2004-07-10 17:47:22 +00:00
geom Implement "FAST" mode for GEOM_STRIPE class and turn it on by default. 2004-07-09 14:30:09 +00:00
gnu Update for the KDB framework: 2004-07-10 21:21:55 +00:00
i4b Catch up with the new world order of Netgraph metas. 2004-07-06 06:43:45 +00:00
i386 Partially revert previous commit. Calling getit() unconditionally fixed 2004-07-11 17:50:59 +00:00
ia64 Add options KDB and GDB. KDB takes on the function of what DDB used 2004-07-11 03:20:09 +00:00
isa Partially revert previous commit. Calling getit() unconditionally fixed 2004-07-11 17:50:59 +00:00
isofs/cd9660
kern Use sockbuf_pushsync() to synchronize stack and socket buffer state 2004-07-11 23:13:14 +00:00
libkern
modules Build uart_dbg.c for remote GDB support. 2004-07-10 23:01:35 +00:00
net Use ETHER_IS_MULTICAST() consistently in ether_resolvemulti(). 2004-07-09 05:26:27 +00:00
net80211
netatalk
netatm
netgraph Update for the KDB framework: 2004-07-10 21:45:58 +00:00
netinet Change the following environment variables to kernel options: 2004-07-08 22:35:36 +00:00
netinet6
netipsec
netipx
netkey
netnatm
netncp
netsmb
nfs
nfs4client Change the following environment variables to kernel options: 2004-07-08 22:35:36 +00:00
nfsclient Change the following environment variables to kernel options: 2004-07-08 22:35:36 +00:00
nfsserver
opencrypto
pc98 Introduce ttygone() which indicates that the hardware is detached. 2004-07-11 15:18:39 +00:00
pccard
pci Update for the KDB framework: 2004-07-10 21:47:53 +00:00
posix4
powerpc - correctly set the return value for the copyin/out fault buffer to 1 2004-07-09 11:00:41 +00:00
rpc
security Update for the KDB framework: 2004-07-10 21:47:53 +00:00
sparc64 The SC_DISABLE_DDBKEY options has been renamed to SC_DISABLE_KDBKEY. 2004-07-11 03:21:24 +00:00
sys Remove the last bits of SPECHASH. 2004-07-11 23:03:37 +00:00
tools Pass doxygen doc comments through to the output. 2004-07-11 16:14:24 +00:00
ufs Update for the KDB debugger framework: 2004-07-10 20:45:47 +00:00
vm Increase the scope of the page queues lock in vm_page_alloc() to cover 2004-07-10 22:12:49 +00:00
Makefile