freebsd-skq/sys
iedowse 885a9694bc Add a mechanism for associating a mutex with a callout when the
callout is first initialised, using a new function callout_init_mtx().
The callout system will acquire this mutex before calling the callout
function and release it on return.

In addition, the callout system uses the mutex to avoid most of the
complications and race conditions inherent in asynchronous timer
facilities, so mutex-protected callouts have much simpler semantics.
As long as the mutex is held when invoking callout_stop() or
callout_reset(), then these functions will guarantee that the callout
will be stopped, even if softclock() had already begun to process
the callout.

Existing Giant-locked callouts will automatically pick up the new
race-free semantics. This should close a number of race conditions
in the USB code and probably other areas of the kernel too.

There should be no change in behaviour for "MP-safe" callouts; these
still need to use the techniques mentioned in timeout(9) to avoid
race conditions.
2005-02-07 02:47:33 +00:00
..
alpha Since we are quite unlikely to ever face another platform which 2005-02-06 13:46:39 +00:00
amd64 Since we are quite unlikely to ever face another platform which 2005-02-06 13:46:39 +00:00
arm Finish the job of sorting all includes and fix the build by including 2005-02-06 01:55:08 +00:00
boot Insert an explicit McAfee license, as we use a stock two-clause BSD 2005-01-30 14:58:00 +00:00
bsm Add a stub audit_kevents.h, which defines exactly one audit event: 2005-02-02 14:27:36 +00:00
cam Boot away another stackgap (one of the lest ones in linuxlator/i386) by 2005-01-30 08:12:37 +00:00
coda Make filesystems get rid of their own vnodes vnode_pager object in 2005-01-28 14:42:17 +00:00
compat Boot away another stackgap (one of the lest ones in linuxlator/i386) by 2005-01-30 08:12:37 +00:00
conf Hook acpi_throttle(4) up to the build. It's currently part of acpi_perf.ko 2005-02-06 21:13:41 +00:00
contrib - Split out PCI support. 2005-02-03 23:01:01 +00:00
crypto Start the dreaded NOFOO -> NO_FOO conversion. 2004-12-21 08:47:35 +00:00
ddb Start each of the license/copyright comments with /*- 2005-01-06 01:34:41 +00:00
dev Enable interrupt routing as first choice on alpha. 2005-02-07 00:43:14 +00:00
doc Experimental support for using doxygen to generate kernel documentation. 2004-07-11 16:13:57 +00:00
fs Unbreak a few filesystems for which vnode_create_vobject() wasn't being 2005-01-29 16:23:39 +00:00
gdb /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 18:27:30 +00:00
geom - Use bioq_insert_tail()/bioq_insert_head() instead of bioq_disksort(). 2005-02-05 00:30:08 +00:00
gnu Make filesystems get rid of their own vnodes vnode_pager object in 2005-01-28 14:42:17 +00:00
i4b /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 22:18:23 +00:00
i386 When running Linux binaries, set up the initial FPU state as Linux 2005-02-06 17:29:20 +00:00
ia64 Since we are quite unlikely to ever face another platform which 2005-02-06 13:46:39 +00:00
isa Since we are quite unlikely to ever face another platform which 2005-02-06 13:46:39 +00:00
isofs/cd9660 Unbreak a few filesystems for which vnode_create_vobject() wasn't being 2005-01-29 16:23:39 +00:00
kern Add a mechanism for associating a mutex with a callout when the 2005-02-07 02:47:33 +00:00
libkern MFlibc: Remove extra closing parenthesis. 2005-02-03 15:51:39 +00:00
modules Hook acpi_throttle(4) up to the build. It's currently part of acpi_perf.ko 2005-02-06 21:13:41 +00:00
net Log changes of link state. 2005-01-30 12:57:47 +00:00
net80211 correct check for unicast key being setup; wpa_supplicant in particular 2005-02-03 16:21:07 +00:00
netatalk /* -> /*- for license, minor formatting changes, insert COPYRIGHT into files 2005-01-07 02:35:34 +00:00
netatm /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
netgraph Whitespace. 2005-02-06 19:24:59 +00:00
netinet Jump to common action checks after doing specific once. This fixes adding 2005-02-06 11:13:59 +00:00
netinet6 Remove a comment from the raw IPv6 output function regarding 2005-02-06 21:43:55 +00:00
netipsec /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
netipx Mark the IPX netisr as MPSAFE so that inbound IPX traffic is processed 2005-01-09 07:34:55 +00:00
netkey fixed an unexpected addr/port matching failure in IPv6 SA management 2005-01-10 13:06:42 +00:00
netnatm /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
netncp /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
netsmb /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
nfs /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
nfs4client Remove unused cred arg from nfs_vinvalbuf() and many bogus arguments 2005-01-24 12:31:06 +00:00
nfsclient Style cleanup for O_DIRECT sysctl comment introduced in nfs_vnops.c:1.242. 2005-01-29 23:19:08 +00:00
nfsserver Don't try to create vnode_pager objects on other filesystems vnodes, 2005-01-24 22:09:13 +00:00
opencrypto /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
pc98 Sort includes and remove duplicate include. 2005-02-06 13:31:22 +00:00
pccard /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
pci Cleanup debugging code and put it under bootverbose 2005-01-29 19:26:53 +00:00
posix4 /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
powerpc Finish the job of sorting all includes and fix the build by including 2005-02-06 01:55:08 +00:00
rpc /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
security Update copyright for NETA->McAfee. 2005-01-30 12:38:47 +00:00
sparc64 Since we are quite unlikely to ever face another platform which 2005-02-06 13:46:39 +00:00
sys Add a mechanism for associating a mutex with a callout when the 2005-02-07 02:47:33 +00:00
tools Get rid of the VDESC() macro while the pot is boiling anyway, it is 2005-01-13 08:05:20 +00:00
ufs - Use a seperate malloc tag for saved inode contents to help in debugging 2005-02-02 20:30:47 +00:00
vm Set the scheduling class of the zeroidle thread to PRI_IDLE. 2005-02-04 06:18:31 +00:00
Makefile Add a NO_BOOT knob to prevent building the boot blocks and loader. 2004-08-19 09:54:28 +00:00