freebsd-skq/sys
Robert Watson 76f6939888 Expand the scope of the socket buffer locks in sopoll() to include the
state test as well as set, or we risk a race between a socket wakeup
and registering for select() or poll() on the socket.  This does
increase the cost of the poll operation, but can probably be optimized
some in the future.

This appears to correct poll() "wedges" experienced with X11 on SMP
systems with highly interactive applications, and might affect a plethora
of other select() driven applications.

RELENG_5 candidate.

Problem reported by:	Maxim Maximov <mcsi at mcsi dot pp dot ru>
Debugged with help of:	dwhite
2004-09-05 14:33:21 +00:00
..
alpha Refactor a bunch of scheduler code to give basically the same behaviour 2004-09-05 02:09:54 +00:00
amd64 Refactor a bunch of scheduler code to give basically the same behaviour 2004-09-05 02:09:54 +00:00
arm Refactor a bunch of scheduler code to give basically the same behaviour 2004-09-05 02:09:54 +00:00
boot Add the loader side of support for preloading ELF relocatable object 2004-08-29 00:48:42 +00:00
cam Correct a typo in a comment: alloation->allocation 2004-08-30 20:14:21 +00:00
coda General modernization of coda: 2004-09-01 01:19:52 +00:00
compat Regenerate after fcntl() wrappers were marked MP safe. 2004-08-24 20:24:34 +00:00
conf Device driver for the Cypress CY7C637xx and CY7C640/1xx families of USB 2004-09-05 09:43:47 +00:00
contrib From __FreeBSD_version 600001 on PFIL_HOOKS is permanently in the kernel and 2004-08-27 20:01:08 +00:00
crypto Use __FBSDID(). 2004-06-14 00:38:54 +00:00
ddb Refactor a bunch of scheduler code to give basically the same behaviour 2004-09-05 02:09:54 +00:00
dev Use %zu to format size_t. 2004-09-05 12:33:15 +00:00
doc Experimental support for using doxygen to generate kernel documentation. 2004-07-11 16:13:57 +00:00
fs Temporarily back out revision 1.77. This changed cd9660_getattr() and 2004-09-05 11:18:53 +00:00
gdb Comment-out the debugging printf I left in in case there were some 2004-08-10 19:32:33 +00:00
geom Allow to configure debug level from /boot/loader.conf. 2004-08-30 18:50:06 +00:00
gnu Add locking to the kqueue subsystem. This also makes the kqueue subsystem 2004-08-15 06:24:42 +00:00
i4b Kill count device support from config. I've changed the last few 2004-08-30 23:03:58 +00:00
i386 Refactor a bunch of scheduler code to give basically the same behaviour 2004-09-05 02:09:54 +00:00
ia64 Refactor a bunch of scheduler code to give basically the same behaviour 2004-09-05 02:09:54 +00:00
isa Improve sync recovery algorithm: 2004-08-27 21:25:16 +00:00
isofs/cd9660 Temporarily back out revision 1.77. This changed cd9660_getattr() and 2004-09-05 11:18:53 +00:00
kern Expand the scope of the socket buffer locks in sopoll() to include the 2004-09-05 14:33:21 +00:00
libkern Move the kernel-specific logic to adjust frompc from MI to MD. For 2004-08-27 19:42:35 +00:00
modules Device driver for the Cypress CY7C637xx and CY7C640/1xx families of USB 2004-09-05 09:43:47 +00:00
net Correct a comment typo: s/Note/Not/. 2004-09-03 01:37:02 +00:00
net80211 Add a new network interface flag, IFF_NEEDSGIANT, which will allow 2004-07-27 23:20:45 +00:00
netatalk Inline umich license from COPYRIGHT to make it clear what license the 2004-08-10 03:23:05 +00:00
netatm Avoid casts as lvalues. 2004-07-28 06:59:55 +00:00
netgraph In FreeBSD 5.x, curthread is always defined, so we don't need to to test 2004-09-02 19:53:13 +00:00
netinet fix up socket/ip layer violation... don't assume/know that 2004-09-05 02:34:12 +00:00
netinet6 Unlock rather than lock the ripcbinfo lock at the end of rip6_input(). 2004-09-02 20:18:02 +00:00
netipsec Apply error and success logic consistently to the function netisr_queue() and 2004-08-27 18:33:08 +00:00
netipx Mark Netgraph TTY, KAME IPSEC, and IPX/SPX as requiring Giant for correct 2004-08-28 15:24:53 +00:00
netkey The KAME IPSEC implementation at one point used its own pseudo-random 2004-09-02 20:14:03 +00:00
netnatm Constify send and receive space constants in natm. 2004-06-24 03:11:29 +00:00
netncp Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
netsmb Avoid casts as lvalues. 2004-07-28 06:59:55 +00:00
nfs
nfs4client Put a version element in the VFS filesystem configuration structure 2004-07-30 22:08:52 +00:00
nfsclient In nfs_timer(), pass curthread rather than &thread0 into the protocol 2004-08-25 01:23:38 +00:00
nfsserver Convert a mtx_lock(&Giant) to a mtx_unlock(&Giant) in nfsrv_link() to 2004-08-25 16:52:59 +00:00
opencrypto Don't acquire Giant in cryptof_close(), as the code is intended to be 2004-08-10 03:26:17 +00:00
pc98 Refactor a bunch of scheduler code to give basically the same behaviour 2004-09-05 02:09:54 +00:00
pccard Move PNP IDs back into oldcard files 2004-08-13 06:57:31 +00:00
pci Tag a last set of PCI network interfaces as IFF_NEEDSGIANT until they 2004-08-28 15:10:35 +00:00
posix4
powerpc Refactor a bunch of scheduler code to give basically the same behaviour 2004-09-05 02:09:54 +00:00
rpc fix array index out of bounds in rpc->rc_srtt[], rpc->rc_sdrtt[] 2004-07-15 22:21:25 +00:00
security Allow mac_bsdextended(4) to log failed attempts to syslog's AUTHPRIV 2004-08-21 20:19:19 +00:00
sparc64 Refactor a bunch of scheduler code to give basically the same behaviour 2004-09-05 02:09:54 +00:00
sys Refactor a bunch of scheduler code to give basically the same behaviour 2004-09-05 02:09:54 +00:00
tools Pass doxygen doc comments through to the output. 2004-07-11 16:14:24 +00:00
ufs Currently, if the secure level is low enough, system flags can 2004-08-22 02:03:41 +00:00
vm Enable debug.mpsafevm by default on amd64 and i386. This enables copy-on- 2004-09-04 05:51:54 +00:00
Makefile Add a NO_BOOT knob to prevent building the boot blocks and loader. 2004-08-19 09:54:28 +00:00