freebsd-dev/sys/dev/ath
Adrian Chadd 7561cb5c8b Wrap the whole (software) TX path from ifnet dequeue to software queue
(or direct dispatch) behind the TXQ lock (which, remember, is doubling
as the TID lock too for now.)

This ensures that:

 (a) the sequence number and the CCMP PN allocation is done together;
 (b) overlapping transmit paths don't interleave frames, so we don't
     end up with the original issue that triggered kern/166190.

     Ie, that we don't end up with seqno A, B in thread 1, C, D in
     thread 2, and they being queued to the software queue as "A C D B"
     or similar, leading to the BAW stalls.

This has been tested:

* both STA and AP modes with INVARIANTS and WITNESS;
* TCP and UDP TX;
* both STA->AP and AP->STA.

STA is a Routerstation Pro (single CPU MIPS) and the AP is a dual-core
Centrino.

PR:		kern/166190
2012-06-11 07:44:16 +00:00
..
ath_dfs/null Contribute some example code which demonstrates how to initialise the 2012-02-06 20:23:21 +00:00
ath_hal Add the AR9280 workarounds for PCIe suspend/resume. 2012-05-26 01:36:25 +00:00
ath_rate Add in some debugging code to check whether the current rate table has 2012-02-26 06:04:44 +00:00
ah_osdep.c Stop using the hardware register value byte order swapping for now, 2012-04-19 03:26:21 +00:00
ah_osdep.h Add placeholder methods for WMI command access (USB, perhaps SDIO later) 2012-04-25 01:42:22 +00:00
if_ath_ahb.c Begin merging in some of my 802.11n TX aggregation driver changes. 2011-11-08 02:12:11 +00:00
if_ath_beacon.c Migrate most of the beacon handling functions out to if_ath_beacon.c. 2012-05-20 04:14:29 +00:00
if_ath_beacon.h Migrate most of the beacon handling functions out to if_ath_beacon.c. 2012-05-20 04:14:29 +00:00
if_ath_debug.c Revert r233227 and followup commits as it breaks CCMP PN replay detection. 2012-06-11 06:59:28 +00:00
if_ath_debug.h Migrate ath_debug and sc_debug from an int to a uint64_t / QUAD; 2012-05-15 23:39:37 +00:00
if_ath_keycache.c Add a 'vap' to ath_keyset(). 2011-11-08 19:25:52 +00:00
if_ath_keycache.h Add a 'vap' to ath_keyset(). 2011-11-08 19:25:52 +00:00
if_ath_led.c Since the only thing with a mux is the AR5416 and later, and we're now 2011-12-26 07:48:29 +00:00
if_ath_led.h Refactor out the software LED config code into a common function, called 2011-12-26 05:46:22 +00:00
if_ath_misc.h Mostly revert previous commit(s). After doing a bunch of local testing, 2012-06-05 06:03:55 +00:00
if_ath_pci.c Override some default values to work around various issues in the deep, 2012-04-15 00:04:23 +00:00
if_ath_rx.c Create a function - ath_tx_kick() - which is called where ath_start() is 2012-06-05 03:14:49 +00:00
if_ath_rx.h Migrate the bulk of the RX routines out from if_ath.c to if_ath_rx.[ch]. 2012-05-20 02:05:10 +00:00
if_ath_sysctl.c Migrate ath_debug and sc_debug from an int to a uint64_t / QUAD; 2012-05-15 23:39:37 +00:00
if_ath_sysctl.h Break out most of the HAL related tweaks into a per-HAL instance, 2011-06-23 02:38:36 +00:00
if_ath_tdma.c Migrate the TDMA management functions out of if_ath.c into if_ath_tdma.c. 2012-05-20 02:49:42 +00:00
if_ath_tdma.h Migrate the TDMA management functions out of if_ath.c into if_ath_tdma.c. 2012-05-20 02:49:42 +00:00
if_ath_tsf.h Migrate the bulk of the RX routines out from if_ath.c to if_ath_rx.[ch]. 2012-05-20 02:05:10 +00:00
if_ath_tx_ht.c Revert r233227 and followup commits as it breaks CCMP PN replay detection. 2012-06-11 06:59:28 +00:00
if_ath_tx_ht.h Introduce TX aggregation and software TX queue management 2011-11-08 22:43:13 +00:00
if_ath_tx.c Wrap the whole (software) TX path from ifnet dequeue to software queue 2012-06-11 07:44:16 +00:00
if_ath_tx.h Revert r233227 and followup commits as it breaks CCMP PN replay detection. 2012-06-11 06:59:28 +00:00
if_ath.c Add a new ioctl for ath(4) which returns the aggregate statistics. 2012-06-10 06:42:18 +00:00
if_athdfs.h Change the prototype so the radar enable can fail. 2012-01-28 21:44:42 +00:00
if_athioctl.h Add a new ioctl for ath(4) which returns the aggregate statistics. 2012-06-10 06:42:18 +00:00
if_athrate.h Introduce TX aggregation and software TX queue management 2011-11-08 22:43:13 +00:00
if_athvar.h Introduce a new lock debug which is specifically for making sure the 2012-06-11 07:06:49 +00:00