freebsd-dev/sys
Robert Watson ae11a989e6 When writing trailers in sendfile(2), don't call kern_writev()
while holding the socket buffer lock.  These leads to an
immediate panic due to recursing the socket buffer lock.  This
bug was introduced in uipc_syscalls.c:1.240, but masked by
another bug until that was fixed in uipc_syscalls.c:1.269.

Note that the current fix isn't perfect, but better than
panicking: normally we guarantee that simultaneous invocations
of a system call to write on a stream socket won't be
interlaced, which is ensured by use of the socket buffer sleep
lock.  This is guaranteed for the sendfile headers, but not
trailers.  In practice, this is likely not a problem, but
should be fixed.

MFC after:	3 days
Pointy hat to:	andre (1.240), cperciva (1.269)
2008-04-27 15:50:00 +00:00
..
amd64 Always use PG_PS_FRAME to extract the physical address of a 2/4MB page 2008-04-25 16:00:39 +00:00
arm - Add an integer argument to idle to indicate how likely we are to wake 2008-04-25 05:18:50 +00:00
boot Revert the previous change and let PROBE_KEYBOARD function identical to -P 2008-04-09 17:59:17 +00:00
bsm Merge OpenBSM 1.0 changes to src/sys/bsm: 2007-10-29 18:47:25 +00:00
cam Locking in the ses_ioctl handler doesn't have to be so strict because 2008-03-17 17:18:16 +00:00
cddl Add FreeBSD IDs to files that originate in FreeBSD. 2008-04-22 07:43:00 +00:00
compat Implement linux_truncate64() syscall. 2008-04-23 15:56:33 +00:00
conf Introduce a dedicated file for MPC85xx-specific routines. Move cpu_reset() 2008-04-26 17:57:29 +00:00
contrib Multi-bss (aka vap) support for 802.11 devices. 2008-04-20 20:35:46 +00:00
crypto Make test00 compilable again. 2008-01-15 18:34:47 +00:00
ddb Rename debug.ddb.capture.bytes sysctl to debug.ddb.capture.bufoff in 2008-04-25 13:23:36 +00:00
dev With rev 1.24 of sys/powerpc/powermac/macio.c, we now get a 2008-04-26 18:40:59 +00:00
fs o Fixed multi thread access issue reported by Alexander V. Chernikov 2008-04-25 11:37:20 +00:00
gdb Commit SYSINIT() ;-adding patch missed in previous pass. 2008-03-16 13:02:04 +00:00
geom Implement the G_PART_DUMPCONF method for all 6 schemes. Also call 2008-04-23 20:13:05 +00:00
gnu Move the head of byte-level advisory lock list from the 2008-04-16 11:33:32 +00:00
i4b Spelling fix for interupt -> interrupt 2007-10-12 06:03:46 +00:00
i386 Always use PG_PS_FRAME to extract the physical address of a 2/4MB page 2008-04-25 16:00:39 +00:00
ia64 Unbreak previous commit. While here, refactor the code a bit. 2008-04-25 16:09:03 +00:00
isa atrtc.c is a repocopy of the RTC device driver from i386/isa/clock.c 2008-04-14 07:57:15 +00:00
kern When writing trailers in sendfile(2), don't call kern_writev() 2008-04-27 15:50:00 +00:00
libkern Add prototype for __cmpd2(). 2008-02-23 22:40:05 +00:00
mips Remove two unused declarations. These variables are now fields within 2008-04-27 00:10:45 +00:00
modules Include the QUICC bus front-end in the module for PowerPC. 2008-04-26 18:41:42 +00:00
net In function rtalloc_mpath(), do not try to release the lock if the ro_rt 2008-04-24 05:04:52 +00:00
net80211 hookup the parent device's if_input and if_output to stub routines 2008-04-25 19:45:42 +00:00
netatalk Replaced the misleading uses of a historical artefact M_TRYWAIT with M_WAIT. 2008-03-25 09:39:02 +00:00
netatm Replaced the misleading uses of a historical artefact M_TRYWAIT with M_WAIT. 2008-03-25 09:39:02 +00:00
netgraph ng_address_hook() microoptimization. Use local variables as they should be. 2008-04-19 05:30:49 +00:00
netinet With IPv4 raw sockets, read lock rather than write lock the inpcb when 2008-04-21 12:06:41 +00:00
netinet6 Acquire a read lock, rather than a write lock, on a UDPv6 inpcb when 2008-04-22 12:20:33 +00:00
netipsec Fix a bug that when getting/dumping the soft lifetime we reported 2008-03-24 15:01:20 +00:00
netipx Make tcpstates[] static, and make sure TCPSTATES is defined before 2007-07-30 11:06:42 +00:00
netnatm
netncp lockmgrs need to be released before to be destroyed and draining doesn't 2008-03-30 18:16:33 +00:00
netsmb Really, smb_iod_main() is not totally MPSAFE, so just acquire and drop 2008-03-27 01:23:59 +00:00
nfs Replaced the misleading uses of a historical artefact M_TRYWAIT with M_WAIT. 2008-03-25 09:39:02 +00:00
nfs4client Move the head of byte-level advisory lock list from the 2008-04-16 11:33:32 +00:00
nfsclient Now that all platforms use genclock, shuffle things around slightly 2008-04-22 19:38:30 +00:00
nfsserver Replaced the misleading uses of a historical artefact M_TRYWAIT with M_WAIT. 2008-03-25 09:39:02 +00:00
nlm Tighten up the error-handling in nlm_get_rpc. While I'm here, fix a 2008-04-16 09:09:50 +00:00
opencrypto Make ftruncate a 'struct file' operation rather than a vnode operation. 2008-01-07 20:05:19 +00:00
pc98 - Add an integer argument to idle to indicate how likely we are to wake 2008-04-25 05:18:50 +00:00
pccard
pci It seems that RealTek 8129/8139 chip reports invalid length of 2008-04-10 01:06:05 +00:00
powerpc Take into account the size of the interrupt cell. It's determined 2008-04-26 18:35:44 +00:00
rpc Fix some issues that showed up during Kris' testing. 2008-04-11 10:34:59 +00:00
security Use logic or, not binary or, when deciding whether or not a system call 2008-04-24 12:23:31 +00:00
sparc64 Remove the MD isa_irq_pending() and the underlying PCI-specific 2008-04-26 11:01:38 +00:00
sun4v Remove the MD isa_irq_pending() and the underlying PCI-specific 2008-04-26 11:01:38 +00:00
sys Implement 'show mount' command in DDB. Without argument, it prints short 2008-04-26 13:04:48 +00:00
tools Introduce a standalone shell script for embedding MFS image. 2008-02-05 10:46:30 +00:00
ufs - Use a local variable for i_ino in ufs_lookup. It is only used to 2008-04-22 12:34:16 +00:00
vm - Make SCHED_STATS more generic by adding a wrapper to create the 2008-04-17 04:20:10 +00:00
xdr Add the new kernel-mode NFS Lock Manager. To use it instead of the 2008-03-26 15:23:12 +00:00
Makefile o Add boot, gdb, nfsserver and opencrypto dirs to CSCOPEDIRS; sort. 2008-01-23 08:50:34 +00:00