opnsense-src/sys/dev
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
..
aac SVN rev 188743 modified aac_rx_get_fwstatus to use the AAC_RX_OMR0 2009-02-23 18:22:06 +00:00
acpi_support - Add the support for the Asus A3F and A3E device 2009-04-04 17:01:32 +00:00
acpica Fix off-by-one bug. S5 state must be checked as well. 2009-04-30 18:00:53 +00:00
adb Use si_drv1 to hold the softc for the adb_mouse character device instead of 2009-01-29 16:18:49 +00:00
adlink Set D_NEEDGIANT. 2007-08-04 17:43:11 +00:00
advansys Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
ae detach doesn't return an unsinged int, but returns an int. 2009-02-04 20:35:22 +00:00
age o Don't access VPD even if hardware advertised the capability. 2009-03-28 07:39:35 +00:00
agp Use si_drv1 instead of dev2unit() inside agp(4). 2009-04-14 13:11:34 +00:00
aha Pass bus_get_dma_tag() into the first argument of bus_dma_create_tag() 2008-10-07 23:55:32 +00:00
ahb Fix a compile error from the last change. 2007-06-17 15:21:09 +00:00
aic Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
aic7xxx remove now-redunant cardbus attachment. 2009-03-09 13:23: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 Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
amdtemp Fix comment explaining where this driver came from. 2009-03-13 16:43:31 +00:00
amr Move the CAM passthrough code into a true module so that it doesn't have to be 2008-11-03 00:53:54 +00:00
an Shutdown routine returns int. 2009-02-04 20:39:45 +00:00
arcmsr Tell CAM that SPI disconnect works, which in turn will let it use tags. 2009-02-20 07:40:54 +00:00
asmc Check for non-existing model DMI string. 2008-11-29 14:20:36 +00:00
asr Replace all calls to minor() with dev2unit(). 2008-09-27 08:51:18 +00:00
ata Improve kernel dumping reliability for busy ATA channels: 2009-05-01 08:03:46 +00:00
ath o eliminate a << in calculating the tx time for turbo mode by pre-multiplying 2009-04-13 21:01:08 +00:00
atkbdc Prevent atkbd(4) interrupt handler from calling keyboard callback function 2009-04-17 00:30:56 +00:00
auxio - Only touch the LED bit of the (LED) AUXIO register when turning the 2006-01-26 19:04:18 +00:00
bce - Updated firmware to latest 4.6.X release. 2009-03-04 00:05:40 +00:00
bfe Add a new sysctl node 'dev.bfe.N.stats' that shows various MAC 2008-08-22 06:46:55 +00:00
bge - Ensure that INTx isn't disabled, as these chips apparently have a 2009-03-23 14:36:50 +00:00
bktr Replace all calls to minor() with dev2unit(). 2008-09-27 08:51:18 +00:00
bm Fix bm_shutdown() KOBJ method to correspond to return int, as it should. 2009-02-04 22:16:27 +00:00
buslogic Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
cardbus Minorly improved debugging. Use the DEVPRINTF macro and report the 2009-03-13 05:31:27 +00:00
ce Remove debug.ce.mpsafenet: we no longer support running the network 2009-02-15 23:29:13 +00:00
cfe Remove an unused variable to make the SENTRY5 mips kernel compile 2008-12-27 11:38:41 +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 Tell CAM that CISS logical devices support tagged queueing. This fixes 2009-02-20 07:43:43 +00:00
cm Remove unused ifaddr and ifreq local variables. 2009-02-12 23:55:35 +00:00
cmx Commit cmx(4), a driver for Omnikey CardMan 4040 PCMCIA smartcard readers. 2008-03-06 08:09:45 +00:00
coretemp Introduce cpu_vendor_id and replace a lot of strcmp(cpu_vendor, "..."). 2008-11-26 19:25:13 +00:00
cp Remove debug.cp.mpsafenet: we no longer support running the network 2009-02-15 23:18:29 +00:00
cpuctl Replace all calls to minor() with dev2unit(). 2008-09-27 08:51:18 +00:00
cpufreq Attach the cpufreq child devices with specific orders to enforce relative 2008-08-13 16:09:40 +00:00
cs Improve the EEPROM parsing, based on finding a datasheet that describes 2008-07-09 16:47:55 +00:00
ct o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ctau Remove debug.ctau.mpsafenet: we no longer support running the network 2009-02-15 23:21:52 +00:00
cx if_cx is currently disconnected from the build due to a dependence on 2009-02-19 00:06:01 +00:00
cxgb simplify by removing dead code 2009-04-27 22:54:30 +00:00
cy o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
dc - Set MIIF_NOLOOP and don't add IFM_LOOP as loopback apparently isn't 2009-03-19 22:34:55 +00:00
dcons Reduce the dcons polling frequency to 25 Hz. 2009-04-06 13:09:02 +00:00
de tulip_busdma_cleanup: pass correct vaddr (2nd arg) to bus_dmamem_free() 2009-02-09 17:07:29 +00:00
digi Remove unused files from the digi(4) driver. 2009-01-16 14:45:48 +00:00
dpt Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
drm Don't try to setup interrupts for drivers that don't support them. 2009-04-19 16:54:33 +00:00
e1000 fix typo in conditional 2009-04-27 23:43:28 +00:00
ed Add Surecom EP-427X. 2009-04-24 17:28:12 +00:00
eisa Make the eisa probe messages just like all the others in the system. 2005-08-01 07:09:15 +00:00
en Hide an unused variable in case we compile with neither INET nor INET6. 2008-11-06 09:41:31 +00:00
ep Two refinements to the 3c1 support: 2009-04-11 04:30:38 +00:00
esp o Move the MODULE_DEPEND() for cam(4) from the esp_sbus.c front-end to 2008-09-08 20:20:44 +00:00
et Don't leak DMA map if not freed. 2008-07-11 18:26:12 +00:00
ex Add preliminary support for the OLICOM OC2231 and OC2232. This is the 2008-08-27 04:11:03 +00:00
exca __LP64__ is what's defined, not _LP64_, according to the manual (and 2009-03-09 13:29:13 +00:00
fatm Use bus_get_dma_tag() so fatm(4) works on platforms requiring it. 2008-09-30 18:52:43 +00:00
fb - Change some softc members to be unsigned where more appropriate. 2009-04-28 20:49:47 +00:00
fdc Eliminate an unused variable reported by coverity 2008-11-23 23:04:28 +00:00
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 Minor updates as a precursor to fixing sbp_targ 2009-04-07 02:33:46 +00:00
flash Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
fxp Don't blindly set IP packet length from interface MTU in TSO case. 2009-04-13 00:32:34 +00:00
gem - Restore the behavior of enabling the MII buffer for an internal 2008-08-23 15:03:26 +00:00
glxsb Fix two possible (but unlikely) NULL-pointer dereferences in glxsb(4). 2008-11-17 07:09:40 +00:00
hatm Give MEXTADD() another argument to make both void pointers to the 2008-02-01 19:36:27 +00:00
hifn shutdown returns an int 2009-02-05 19:37:49 +00:00
hme - Use the revamped code from the gem(4) PCI front-end, which 2008-04-26 14:17:21 +00:00
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 Fix a mistake made during the import of the driver. Previous versions of 2008-03-08 18:06:48 +00:00
hwpmc - Add support for nehalem/corei7 cpus. This supports all of the core 2009-01-27 07:29:37 +00:00
ic - Cleanup i8251 related defines. 2008-09-07 04:35:04 +00:00
ichsmb - Change ichsmb(4) to follow the format of all the other smbus controllers 2009-02-03 16:14:37 +00:00
ichwd Rename two functions to make their purpose clearer. Add tons of comments. 2009-03-19 12:39:13 +00:00
ida o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ie Use the new bus device_shutdown hook for performing the shutdown action 2008-08-01 21:33:07 +00:00
ieee488 Remove the distinction between device minor and unit numbers. 2008-05-29 12:50:46 +00:00
if_ndis Create a taskqueue for each wireless interface which provides a serialised 2009-05-02 15:14:18 +00:00
iicbus - Rename ds1672 and ds133x devices to "ds1672_rtc" and "ds133x_rtc" 2009-04-21 22:48:12 +00:00
iir Replace all calls to minor() with dev2unit(). 2008-09-27 08:51:18 +00:00
io Remove D_NEEDGIANT from io(4). 2008-08-08 13:43:56 +00:00
ipmi Add stuff to support upcoming BMC/IPMI flashing of newer Dell machine 2009-03-26 17:14:22 +00:00
ips o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ipw Create a taskqueue for each wireless interface which provides a serialised 2009-05-02 15:14:18 +00:00
iscsi/initiator This commit fixes the issue with alias_sctp.c. No 2009-02-14 11:34:57 +00:00
isp Don't try reading the SXP_PINS_DIFF on the 10160 and 12160 SCSI 2008-12-15 21:42:38 +00:00
ispfw Make ispfw(4) play nice with individual firmware modules. 2008-11-11 00:14:10 +00:00
iwi Create a taskqueue for each wireless interface which provides a serialised 2009-05-02 15:14:18 +00:00
iwn Create a taskqueue for each wireless interface which provides a serialised 2009-05-02 15:14:18 +00:00
ixgb Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
ixgbe Add missing file, sorry bout that :) 2009-04-10 02:45:00 +00:00
jme Add HW MAC counter support for newer JMC250/JMC260 revisions. 2008-12-04 02:16:53 +00:00
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
le - Use bus_{read,write}_*(9) instead of bus_space_{read,write}_*(9) etc 2008-09-24 21:26:46 +00:00
led Remove unit2minor() use from kernel code. 2008-09-26 14:19:52 +00:00
lge Plug memory leak in jumbo buffer allocation failure path. 2008-03-05 05:36:09 +00:00
lmc Change if_output to take a struct route as its fourth argument in order 2009-04-16 20:30:28 +00:00
malo fix a bug that it passed a incorrect flag BUS_DMA_ALLOCNOW to create 2009-03-31 10:34:54 +00:00
mc146818 Export mc146818_def_{read,write}() so the front-end can make use 2007-06-16 23:10:00 +00:00
mca Change the functions to ANSI in those cases where it breaks promotion 2009-02-24 18:09:31 +00:00
mcd Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
md Add a new internal mount flag (MNTK_EXTENDED_SHARED) to indicate that a 2009-03-11 14:13:47 +00:00
mem
mfi Change Dell's gen2 catch-all from Dell PERC H700/H800 to Dell PERC Gen2 2008-12-15 17:11:40 +00:00
mge mge(4): fix two bugs, which were leading to crash/hang under very heavy 2009-04-16 11:38:06 +00:00
mii New PHY driver for the internal PHY found in the AX88790. There's a 2009-03-30 16:01:09 +00:00
mk48txx Revisit the watchdogs: Resetting the error to EINVAL after failing to set the 2007-03-27 21:03:37 +00:00
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 Move mn over. One of the last stragglers in sys/pci. There's no 2008-11-02 17:04:54 +00:00
mpt Make the whole initiator mode part of mpt(4) endian-clean, 2009-01-07 21:52:47 +00:00
mse Make mse(4) use si_drv1, instead of using unit numbers. 2009-04-20 15:15:24 +00:00
msk Fix typo. 2009-03-25 07:05:23 +00:00
mxge Fix build: Make forgotten IFNET_MULTIQUEUE to IFNET_BUF_RING 2009-04-27 17:24:47 +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 o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
nfe Fix a typo. 2008-12-20 00:04:04 +00:00
nge Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
nmdm Make nmdm(4) use MPSAFE callouts. 2008-11-19 21:07:33 +00:00
nsp Change the functions to ANSI in those cases where it breaks promotion 2009-02-24 18:09:31 +00:00
null Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
nve Two ifnet misuse fixes for if_nve: 2009-04-23 19:29:45 +00:00
nvram - Use an sx lock to serialize writes since they update the checksum. 2008-08-01 20:39:18 +00:00
nxge - bump __FreeBSD version to reflect added buf_ring, memory barriers, 2008-11-22 05:55:56 +00:00
ofw Unbreak OF_interpret() and its standard implementation after r186347. 2009-03-29 15:10:49 +00:00
patm Remove unused variable. 2008-11-26 13:44:11 +00:00
pbio Replace all calls to minor() with dev2unit(). 2008-09-27 08:51:18 +00:00
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 - Consolidate module version for the pcf module into just pcf.c instead 2008-08-05 17:39:37 +00:00
pci - Add a few more register defintions for the PCI express capability 2009-04-17 19:07:44 +00:00
pcn shutdown returns an int 2009-02-05 19:36:14 +00:00
pdq Fix preprocessor code to check for a symbol being defined prior to checking 2007-06-08 01:49:04 +00:00
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 Added entries for Lava SP-PCI (1 serial + 1 parallel) PCI card. The 2009-02-11 00:08:03 +00:00
pst o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
puc remove now-redunant cardbus attachment lines. 2009-03-09 13:25:34 +00:00
quicc Support for Freescale QUad Integrated Communications Controller. 2008-03-03 18:20:17 +00:00
ral Hoist 802.11 encapsulation up into net80211: 2009-03-30 21:53:27 +00:00
random Make sure arc4random(9) is properly seeded when /etc/rc.d/initrandom returns. 2008-11-24 17:39:39 +00:00
rc o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
re For RTL8139C+ controllers, have controller handle padding short 2009-04-20 07:13:04 +00:00
rndtest
rp Start to convert this over to the new tty layer. These changes allow 2009-04-27 15:58:38 +00:00
safe shutdown returns an int 2009-02-05 19:37:49 +00:00
sbni Disable the inline assembly crc32 routine and use the C version instead. 2008-09-10 18:42:19 +00:00
scc Make iclear return int, since that matches all function definitions of it. 2009-02-05 19:32:34 +00:00
scd Use pause() rather than tsleep() on stack variables and function pointers. 2007-02-27 17:23:29 +00:00
sdhci Add support for interruptless kernel dumping. 2009-02-17 19:12:15 +00:00
sf Fix build. 2008-01-21 09:51:28 +00:00
si si_cmdname() is defined only when SI_DEBUG is enabled, thus 2009-02-07 02:14:27 +00:00
siba Use some casting to get the right addresses. This is likely unwise 2008-09-26 05:40:56 +00:00
sio remove now-redunant cardbus attachment. 2009-03-09 13:23:54 +00:00
sis Receving VLAN oversized frames raise SIS_ISR_RX_ERR interrupt, so 2009-02-13 02:08:20 +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 - Move ether_ifdetach earlier. 2008-06-17 05:48:42 +00:00
sn o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
snc Convert to new style PC Card front end driver. Add support for the 2008-08-07 20:55:20 +00:00
snp Slightly improve the design of the TTY buffer. 2009-02-03 19:58:28 +00:00
sound - Unlock softc mutex on failure. 2009-04-20 13:15:25 +00:00
speaker Remove unneeded checks of device unit number from speaker(4). 2009-01-25 09:20:59 +00:00
spibus MFp4: when passing the transfer up the foodchain, make sure we go up 2006-10-20 07:11:52 +00:00
ste Move the ste driver from sys/pci to sys/dev/ste. 2008-08-14 20:09:58 +00:00
stg Change the functions to ANSI in those cases where it breaks promotion 2009-02-24 18:09:31 +00:00
stge Use m_collapse(9) to collapse mbuf chains instead of relying on 2008-01-18 08:32:08 +00:00
streams The streams ptm code is pretty awful and likely incorrect. I don't know 2009-02-16 20:12:28 +00:00
sym Use xpt_register_async() in order to remove code duplication. 2008-10-14 20:18:57 +00:00
syscons Remove obsolete/bogus layering. 2009-04-09 18:22:51 +00:00
tdfx Let tdfx(4) use si_drv1 instead of using dev2unit(). 2009-04-14 11:57:26 +00:00
ti Remove some remnant alpha hacks. 2008-04-26 14:13:48 +00:00
tl Fix shutdown prototypes. 2009-02-10 23:17:20 +00:00
trm Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
tsec tsec(4) cosmetics. 2009-02-17 16:02:45 +00:00
twa Use si_drv1 instead of dev2unit() in twe(4) and twa(4) 2009-04-14 14:02:43 +00:00
twe Use si_drv1 instead of dev2unit() in twe(4) and twa(4) 2009-04-14 14:02:43 +00:00
tx Fix shutdown prototypes. 2009-02-10 23:17:20 +00:00
txp bus_dma(9) conversion and make txp(4) work on all architectures. 2009-03-12 01:14:47 +00:00
uart Don't use pmap_kextact() when comparing bus handles for Book-E. 2009-04-08 22:19:39 +00:00
ubsec Overhaul driver/subsystem api's: 2007-03-21 03:42:51 +00:00
usb Create a taskqueue for each wireless interface which provides a serialised 2009-05-02 15:14:18 +00:00
utopia Fix a use-after-free. 2007-12-05 19:32:59 +00:00
vge remove now-redunant cardbus attachment. 2009-03-09 13:23:54 +00:00
vkbd Remove unit2minor() use from kernel code. 2008-09-26 14:19:52 +00:00
vr It seems there are still issues on multicast perfect filtering. 2008-12-12 01:26:11 +00:00
vx MFp4: Network Adapter is redundant. 2008-08-25 05:20:17 +00:00
watchdog Revisit the watchdogs: Resetting the error to EINVAL after failing to set the 2007-03-27 21:03:37 +00:00
wb Move wb driver from sys/pci to sys/dev/wb. 2008-08-14 21:26:29 +00:00
wds Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
wi Create a taskqueue for each wireless interface which provides a serialised 2009-05-02 15:14:18 +00:00
wl Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
wpi Create a taskqueue for each wireless interface which provides a serialised 2009-05-02 15:14:18 +00:00
xe Style(9) xe(4). The MD5 sums are different, but comparing the dissassemblies 2008-06-04 20:26:57 +00:00
xen Fix the Xen build for i386 PV mode. 2009-04-01 17:06:28 +00:00
xl remove dead code with reference to IFQ_HANDOFF 2009-04-27 22:53:35 +00:00