freebsd-nq/sys/dev/ath
Adrian Chadd d3a6425b7c Fix up some corner cases with aggregation handling.
I've come across a weird scenario in net80211 where two TX streams will
happily attempt to setup an aggregation session together.
If we're very lucky, it happens concurrently on separate CPUs and the
total lack of locking in the net80211 aggregation code causes this stuff
to race. Badly.

So >1 call would occur to the ath(4) addba start, but only one call would
complete to addba complete or timeout.  The TID would thus stay paused.

The real fix is to implement some proper per-node (or maybe per-TID)
locking in net80211, which then could be leveraged by the ath(4) TX
aggregation code.

Whilst I'm at it, shuffle around the debugging messages a bit.
I like to keep people on their toes.
2012-05-22 06:31:03 +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 some empty DFS methods for AR5210/AR5211 for now, if DFS is enabled 2012-05-09 18:17:01 +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 Migrate ath_debug and sc_debug from an int to a uint64_t / QUAD; 2012-05-15 23:39:37 +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 Migrate most of the beacon handling functions out to if_ath_beacon.c. 2012-05-20 04:14:29 +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 Re-add 'ic' and properly wrap it in the SUPERG macro. 2012-05-21 17:51:26 +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 As I thought, this is a bad idea. When forming aggregates, the RTS/CTS 2012-04-07 05:46:00 +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 Fix up some corner cases with aggregation handling. 2012-05-22 06:31:03 +00:00
if_ath_tx.h Delay sequence number allocation for A-MPDU until just before the frame 2012-03-20 04:50:25 +00:00
if_ath.c Migrate most of the beacon handling functions out to if_ath_beacon.c. 2012-05-20 04:14:29 +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 Squirrel away SYNC interrupt debugging if it's enabled in the HAL. 2012-04-10 07:23:37 +00:00
if_athrate.h Introduce TX aggregation and software TX queue management 2011-11-08 22:43:13 +00:00
if_athvar.h Fix up some corner cases with aggregation handling. 2012-05-22 06:31:03 +00:00