freebsd-src/sys
Andrew Thompson 5efea30f03 Create a taskqueue for each wireless interface which provides a serialised
sleepable context for net80211 driver callbacks. This removes the need for USB
and firmware based drivers to roll their own code to defer the chip programming
for state changes, scan requests, channel changes and mcast/promisc updates.
When a driver callback completes the hardware state is now guaranteed to have
been updated and is in sync with net80211 layer.

This nukes around 1300 lines of code from the wireless device drivers making
them more readable and less race prone.

The net80211 layer has been updated as follows
 - all state/channel changes are serialised on the taskqueue.
 - ieee80211_new_state() always queues and can now be called from any context
 - scanning runs from a single taskq function and executes to completion. driver
   callbacks are synchronous so the channel, phy mode and rx filters are
   guaranteed to be set in hardware before probe request frames are
   transmitted.

Help and contributions from Sam Leffler.

Reviewed by:	sam
2009-05-02 15:14:18 +00:00
..
amd64 Add support for using i8254 and rtc timers as event sources for amd64 SMP 2009-05-02 12:20:43 +00:00
arm Reduce the number of bounce zones (and thus the number of bounce pages 2009-04-23 20:24:19 +00:00
boot A simple rewrite of biossmap.c: 2009-04-15 17:31:22 +00:00
bsm Merge OpenBSM 1.1 from OpenBSM vendor branch to head. 2009-04-19 16:17:13 +00:00
cam Get rid of the device index number stored in the sa(4) unit number. 2009-04-20 10:40:42 +00:00
cddl Introduce the extensible jail framework, using the same "name=value" 2009-04-29 21:14:15 +00:00
compat Linux socketpair() call expects explicit specified protocol for 2009-05-02 10:51:40 +00:00
conf add more tdma fixed rate defaults 2009-05-01 17:18:45 +00:00
contrib In preparation for turning on options VIMAGE in next commits, 2009-04-26 22:06:42 +00:00
crypto identify routine takes driver_t *, not device_t *. 2009-02-05 19:30:28 +00:00
ddb Prefer prototypes to k&r definitions. 2009-03-09 13:32:19 +00:00
dev Create a taskqueue for each wireless interface which provides a serialised 2009-05-02 15:14:18 +00:00
fs Remove VOP_LEASE and supporting functions. This hasn't been used since 2009-04-10 10:52:19 +00:00
gdb
geom - Remove assertion of topology lock remaining from 7.x gvinum. It is not needed, 2009-04-18 16:36:27 +00:00
gnu Fix two issues with bufdaemon, often causing the processes to hang in 2009-03-16 15:39:46 +00:00
i386 Add support for using i8254 and rtc timers as event sources for i386 SMP 2009-05-02 12:59:47 +00:00
ia64 Remove isa_irq_pending(). It's not used. 2009-04-24 03:43:20 +00:00
isa Add resume methods to i8254 and atrtc devices. 2009-05-01 21:43:04 +00:00
kern Don't call the OSD destructor if the data slot is NULL 2009-04-30 22:43:21 +00:00
kgssapi
legacy/dev Remove kue_fw.h, missed in previous IFF_NEEDSGIANT USB driver garbage 2009-04-17 09:48:20 +00:00
libkern Add memmove() to the kernel, making the kernel compile with Clang. 2009-02-28 16:21:25 +00:00
mips A variety of changes: 2009-05-02 06:12:38 +00:00
modules add ralfw 2009-05-01 17:15:29 +00:00
net Make indentation more uniform accross vnet container structs. 2009-05-02 08:16:26 +00:00
net80211 Create a taskqueue for each wireless interface which provides a serialised 2009-05-02 15:14:18 +00:00
netatalk Lock interface address list lock around ifaddr inserts and deletes 2009-04-19 22:01:38 +00:00
netgraph In preparation to make options VIMAGE operational, where needed, 2009-04-26 07:14:50 +00:00
netinet Make indentation more uniform accross vnet container structs. 2009-05-02 08:16:26 +00:00
netinet6 Make indentation more uniform accross vnet container structs. 2009-05-02 08:16:26 +00:00
netipsec Make indentation more uniform accross vnet container structs. 2009-05-02 08:16:26 +00:00
netipx Make the SPX code use its own copies of insque()/remque(). 2009-04-26 21:03:27 +00:00
netnatm Remove IFF_NEEDSGIANT, a compatibility infrastructure introduced 2009-03-15 14:21:05 +00:00
netncp
netsmb
nfs Adding sys/nfs/nfssvc.h and sys/nfs/nfs_nfssvc.c in preparation for 2009-04-07 19:06:51 +00:00
nfs4client Remove VOP_LEASE and supporting functions. This hasn't been used since 2009-04-10 10:52:19 +00:00
nfsclient Remove trailing spaces 2009-04-13 19:54:33 +00:00
nfsserver Change nfsserver so that it uses the nfssvc() system call provided 2009-04-12 19:04:27 +00:00
nlm
opencrypto Fix return type for detach routine (should be int) 2009-02-05 17:43:12 +00:00
pc98 o add uath 2009-05-01 17:20:16 +00:00
pci For RTL8139C+ controllers, have controller handle padding short 2009-04-20 07:13:04 +00:00
powerpc Zero PCB during early AIM PowerPC init. 2009-04-24 08:57:54 +00:00
rpc Added a field to the SVCXPRT structure that the nfsv4 server can 2009-04-16 16:26:35 +00:00
security Rename MAC Framework-internal macros used to invoke policy entry points: 2009-05-01 21:05:40 +00:00
sparc64 Don't conditionally define CACHE_LINE_SHIFT, as we anticipate sizing 2009-04-20 12:59:23 +00:00
sun4v Don't conditionally define CACHE_LINE_SHIFT, as we anticipate sizing 2009-04-20 12:59:23 +00:00
sys Permit buiding kernels with options VIMAGE, restricted to only a single 2009-04-30 13:36:26 +00:00
tools Add SDT DTrace probes for VFS vnode operations in the vfs:vop 2009-03-29 03:30:15 +00:00
ufs Change the semantics of i_modrev/va_filerev to what is required for 2009-04-27 16:46:16 +00:00
vm Use the acquired reference to the vmspace instead of direct dereferencing 2009-04-28 11:45:36 +00:00
xdr Add memmove() to the kernel, making the kernel compile with Clang. 2009-02-28 16:21:25 +00:00
xen Fix the Xen build for i386 PV mode. 2009-04-01 17:06:28 +00:00
Makefile Removal pccard directory requires removing it from the list of things 2009-02-15 18:19:24 +00:00