1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-24 11:29:10 +00:00
freebsd/sys/dev
John Baldwin 74fb0ba732 Rework socket upcalls to close some races with setup/teardown of upcalls.
- Each socket upcall is now invoked with the appropriate socket buffer
  locked.  It is not permissible to call soisconnected() with this lock
  held; however, so socket upcalls now return an integer value.  The two
  possible values are SU_OK and SU_ISCONNECTED.  If an upcall returns
  SU_ISCONNECTED, then the soisconnected() will be invoked on the
  socket after the socket buffer lock is dropped.
- A new API is provided for setting and clearing socket upcalls.  The
  API consists of soupcall_set() and soupcall_clear().
- To simplify locking, each socket buffer now has a separate upcall.
- When a socket upcall returns SU_ISCONNECTED, the upcall is cleared from
  the receive socket buffer automatically.  Note that a SO_SND upcall
  should never return SU_ISCONNECTED.
- All this means that accept filters should now return SU_ISCONNECTED
  instead of calling soisconnected() directly.  They also no longer need
  to explicitly clear the upcall on the new socket.
- The HTTP accept filter still uses soupcall_set() to manage its internal
  state machine, but other accept filters no longer have any explicit
  knowlege of socket upcall internals aside from their return value.
- The various RPC client upcalls currently drop the socket buffer lock
  while invoking soreceive() as a temporary band-aid.  The plan for
  the future is to add a new flag to allow soreceive() to be called with
  the socket buffer locked.
- The AIO callback for socket I/O is now also invoked with the socket
  buffer locked.  Previously sowakeup() would drop the socket buffer
  lock only to call aio_swake() which immediately re-acquired the socket
  buffer lock for the duration of the function call.

Discussed with:	rwatson, rmacklem
2009-06-01 21:17:03 +00:00
..
aac We no longer need to use d_thread_t, migrate to struct thread *. 2009-05-20 17:29:21 +00:00
acpi_support Remove unused variables. 2009-05-12 23:22:58 +00:00
acpica We no longer need to use d_thread_t, migrate to struct thread *. 2009-05-20 17:29:21 +00:00
adb
adlink
advansys
ae
age pci(4) handles PCIM_CMD_INTxDIS so there is no need to poke this 2009-05-20 03:33:27 +00:00
agp Use si_drv1 instead of dev2unit() inside agp(4). 2009-04-14 13:11:34 +00:00
aha
ahb
aic Snip redundant assignment. 2009-05-13 22:31:25 +00:00
aic7xxx Initialize the match structure. This is unnecessary but gcc insists to 2009-06-01 21:07:54 +00:00
ale Now pci(4) handles PCIM_CMD_INTxDIS so there is no need to poke 2009-03-05 00:04:32 +00:00
amd
amdtemp Fix comment explaining where this driver came from. 2009-03-13 16:43:31 +00:00
amr We no longer need to use d_thread_t, migrate to struct thread *. 2009-05-20 17:29:21 +00:00
an
arcmsr We no longer need to use d_thread_t, migrate to struct thread *. 2009-05-20 17:29:21 +00:00
asmc
asr Unmark the ASR Compat IOCTLs as BURN_BRIDGES, per scottl@ 2009-05-09 17:47:42 +00:00
ata According to Intel documentation (307013), 3Gbps mode is supported on 2009-06-01 07:05:52 +00:00
ath Overhaul monitor mode handling: 2009-05-20 20:00:40 +00:00
atkbdc Prevent atkbd(4) interrupt handler from calling keyboard callback function 2009-04-17 00:30:56 +00:00
auxio
bce DMA synchronization fixes: 2009-05-18 01:51:52 +00:00
bfe
bge Fix return values appropriately. 2009-05-30 17:56:19 +00:00
bktr Unbreak bktr(4). 2009-05-26 12:01:37 +00:00
bm
buslogic
bwi Move the unlock to after the ifdef (maybe the right fix is to remove 2009-06-01 16:29:03 +00:00
cardbus Minorly improved debugging. Use the DEVPRINTF macro and report the 2009-03-13 05:31:27 +00:00
ce
cfe Last minute TTY API change: remove mutex argument from tty_alloc(). 2009-05-29 06:41:23 +00:00
cfi choose the size of the last region for d_stripsize instead of the first; 2009-03-10 22:29:42 +00:00
ciss We no longer need to use d_thread_t, migrate to struct thread *. 2009-05-20 17:29:21 +00:00
cm
cmx
coretemp
cp
cpuctl
cpufreq
cs
ct
ctau
cx
cxgb Rework socket upcalls to close some races with setup/teardown of upcalls. 2009-06-01 21:17:03 +00:00
cy
dc When user_frac in the polling subsystem is low it is going to busy the 2009-05-30 15:14:44 +00:00
dcons Last minute TTY API change: remove mutex argument from tty_alloc(). 2009-05-29 06:41:23 +00:00
de
digi
dpt
drm Don't try to setup interrupts for drivers that don't support them. 2009-04-19 16:54:33 +00:00
e1000 When user_frac in the polling subsystem is low it is going to busy the 2009-05-30 15:14:44 +00:00
ed ifp->if_softc is managed entirely by the driver. We never set it to 2009-05-13 14:43:26 +00:00
eisa
en
ep Add a missing break in a switch statement. 2009-05-15 21:06:28 +00:00
esp
et
ex
exca __LP64__ is what's defined, not _LP64_, according to the manual (and 2009-03-09 13:29:13 +00:00
fatm
fb - Change some softc members to be unsigned where more appropriate. 2009-04-28 20:49:47 +00:00
fdc
fe It appears that the TDK LAK CD011 works with fe driver. I don't have 2009-03-25 22:12:07 +00:00
firewire When user_frac in the polling subsystem is low it is going to busy the 2009-05-30 15:14:44 +00:00
flash - Remove nonexistent header file from includes list 2009-05-13 18:31:28 +00:00
fxp When user_frac in the polling subsystem is low it is going to busy the 2009-05-30 15:14:44 +00:00
gem
glxsb
hatm
hifn
hme
hptiop Use __packed from cdefs.h 2009-03-25 06:27:56 +00:00
hptmv Use DEVICE_SHUTDOWN(9) mechanism for shutdown handler. 2009-04-09 07:45:23 +00:00
hptrr
hwpmc
ic
ichsmb
ichwd Rename two functions to make their purpose clearer. Add tons of comments. 2009-03-19 12:39:13 +00:00
ida
ie
ieee488
if_ndis s/usb2_/usb_/ on all typedefs for the USB stack. 2009-05-29 18:46:57 +00:00
iicbus - Rename ds1672 and ds133x devices to "ds1672_rtc" and "ds133x_rtc" 2009-04-21 22:48:12 +00:00
iir We no longer need to use d_thread_t, migrate to struct thread *. 2009-05-20 17:29:21 +00:00
io
ipmi Add stuff to support upcoming BMC/IPMI flashing of newer Dell machine 2009-03-26 17:14:22 +00:00
ips
ipw Overhaul monitor mode handling: 2009-05-20 20:00:40 +00:00
iscsi/initiator
isp Change uses of the struct ccb_hdr timeout_ch missed when isp(4) was 2009-05-10 20:14:19 +00:00
ispfw
iwi rssi/nf data are now dbm, tag them accordingly 2009-05-21 15:30:59 +00:00
iwn validate tx rate(s) in the raw xmit path 2009-05-29 23:41:31 +00:00
ixgb When user_frac in the polling subsystem is low it is going to busy the 2009-05-30 15:14:44 +00:00
ixgbe Add missing file, sorry bout that :) 2009-04-10 02:45:00 +00:00
jme
joy Use si_drv1 to store joy(4)'s softc. 2009-04-14 11:23:09 +00:00
kbd Whitespace nitpicking 2009-04-09 19:11:08 +00:00
kbdmux Undo SVN rev 183283 2009-04-08 20:52:30 +00:00
ksyms Change from using vm_map_delete() to vm_map_remove(). 2009-05-27 16:20:46 +00:00
le
led
lge Remove unused variable. 2009-05-12 19:33:36 +00:00
lmc Unbreak build. 2009-05-30 18:39:22 +00:00
malo Overhaul monitor mode handling: 2009-05-20 20:00:40 +00:00
mc146818
mca Change the functions to ANSI in those cases where it breaks promotion 2009-02-24 18:09:31 +00:00
mcd
md Add cpu_flush_dcache() for use after non-DMA based I/O so that a 2009-05-18 18:37:18 +00:00
mem
mfi We no longer need to use d_thread_t, migrate to struct thread *. 2009-05-20 17:29:21 +00:00
mge When user_frac in the polling subsystem is low it is going to busy the 2009-05-30 15:14:44 +00:00
mii Add driver support for 88E3016 PHY which is found on Marvell Yukon 2009-05-25 02:36:29 +00:00
mk48txx
mlx Convert mlx(4) and mly(4) to si_drv1 instead of dev2unit(). 2009-04-18 07:36:38 +00:00
mly Convert mlx(4) and mly(4) to si_drv1 instead of dev2unit(). 2009-04-18 07:36:38 +00:00
mmc read_ivar takes a uintptr_t * not a u_char *. 2009-03-12 06:36:44 +00:00
mn
mpt Largely revert the earlier change to use a single CCB for the RAID recovery 2009-05-21 12:36:40 +00:00
mse Make mse(4) use si_drv1, instead of using unit numbers. 2009-04-20 15:15:24 +00:00
msk Correct controller description for 88E8035, 88E8036, 88E8038 and 2009-05-25 08:26:39 +00:00
mwl driver for Marvell 88W8363 Wireless LAN controller 2009-06-01 18:07:01 +00:00
mxge Set an rx jumbo cluster to the correct size before 2009-06-01 19:16:57 +00:00
my Release driver lock at the end of the watchdog routine instead of trying to 2009-03-23 17:51:07 +00:00
ncv
nfe When user_frac in the polling subsystem is low it is going to busy the 2009-05-30 15:14:44 +00:00
nge Unbreak build. 2009-05-30 18:39:22 +00:00
nmdm Last minute TTY API change: remove mutex argument from tty_alloc(). 2009-05-29 06:41:23 +00:00
nsp Change the functions to ANSI in those cases where it breaks promotion 2009-02-24 18:09:31 +00:00
null
nve Two ifnet misuse fixes for if_nve: 2009-04-23 19:29:45 +00:00
nvram
nxge
ofw Last minute TTY API change: remove mutex argument from tty_alloc(). 2009-05-29 06:41:23 +00:00
patm
pbio
pccard Another PC Card that needs the CIS strings for the Surecom EP-427X, 2009-04-24 17:27:45 +00:00
pccbb Revert r190676,190677 2009-04-10 04:08:34 +00:00
pcf
pci Add an internal pci_printf() routine similar to device_printf() except 2009-06-01 20:30:00 +00:00
pcn
pdq
powermac_nvram Use si_drv1 instead of dev2unit() in powermac_nvram. 2009-04-14 13:18:39 +00:00
ppbus Change if_output to take a struct route as its fourth argument in order 2009-04-16 20:30:28 +00:00
ppc
pst
puc remove now-redunant cardbus attachment lines. 2009-03-09 13:25:34 +00:00
quicc
ral validate tx rate(s) in the raw xmit path 2009-05-29 23:41:31 +00:00
random There is rubbish here 2009-05-25 22:50:11 +00:00
rc
re When user_frac in the polling subsystem is low it is going to busy the 2009-05-30 15:14:44 +00:00
rndtest
rp Last minute TTY API change: remove mutex argument from tty_alloc(). 2009-05-29 06:41:23 +00:00
safe
sbni
scc
scd
sdhci
sf When user_frac in the polling subsystem is low it is going to busy the 2009-05-30 15:14:44 +00:00
si Last minute TTY API change: remove mutex argument from tty_alloc(). 2009-05-29 06:41:23 +00:00
siba
sio remove now-redunant cardbus attachment. 2009-03-09 13:23:54 +00:00
sis When user_frac in the polling subsystem is low it is going to busy the 2009-05-30 15:14:44 +00:00
sk Separate multicast filtering of SysKonnect GENESIS and Marvell 2009-05-01 03:24:03 +00:00
smbus Make generic_intr routines match prototype. 2009-03-09 13:30:00 +00:00
smc When user_frac in the polling subsystem is low it is going to busy the 2009-05-30 15:14:44 +00:00
sn
snc
snp Keep this line shorter than 80 columns. 2009-05-13 19:29:50 +00:00
sound Comment out old Realtek ALC883 quirk, that was disabling phantop power on 2009-06-01 13:13:47 +00:00
speaker
spibus - Make SPI bus bridge be non-arch dependent by using more generic 2009-05-13 18:42:49 +00:00
ste When user_frac in the polling subsystem is low it is going to busy the 2009-05-30 15:14:44 +00:00
stg Change the functions to ANSI in those cases where it breaks promotion 2009-02-24 18:09:31 +00:00
stge When user_frac in the polling subsystem is low it is going to busy the 2009-05-30 15:14:44 +00:00
streams
sym
syscons Restore support for bell pitch/duration. 2009-05-31 19:35:41 +00:00
tdfx Let tdfx(4) use si_drv1 instead of using dev2unit(). 2009-04-14 11:57:26 +00:00
ti
tl
trm
tsec When user_frac in the polling subsystem is low it is going to busy the 2009-05-30 15:14:44 +00:00
twa We no longer need to use d_thread_t, migrate to struct thread *. 2009-05-20 17:29:21 +00:00
twe We no longer need to use d_thread_t, migrate to struct thread *. 2009-05-20 17:29:21 +00:00
tx
txp bus_dma(9) conversion and make txp(4) work on all architectures. 2009-03-12 01:14:47 +00:00
uart Last minute TTY API change: remove mutex argument from tty_alloc(). 2009-05-29 06:41:23 +00:00
ubsec Add PCI IDs for the Broadcom 5825 incarnation. 2009-05-07 18:03:47 +00:00
usb ZyXEL G-202 has zd1211b chipset, not zd1211. 2009-06-01 01:51:37 +00:00
utopia
vge When user_frac in the polling subsystem is low it is going to busy the 2009-05-30 15:14:44 +00:00
vkbd
vr When user_frac in the polling subsystem is low it is going to busy the 2009-05-30 15:14:44 +00:00
vx
watchdog
wb
wds
wi force type match 2009-05-21 04:00:31 +00:00
wl
wpi Overhaul monitor mode handling: 2009-05-20 20:00:40 +00:00
xe
xen Last minute TTY API change: remove mutex argument from tty_alloc(). 2009-05-29 06:41:23 +00:00
xl When user_frac in the polling subsystem is low it is going to busy the 2009-05-30 15:14:44 +00:00