linux/drivers/net/wireless
Sven Eckelmann 6fe7cc71bb ath9k: Test for TID only in BlockAcks while checking tx status
The ath9k xmit functions for AMPDUs can send frames as non-aggregate in case
only one frame is currently available. The client will then answer using a
normal Ack instead of a BlockAck. This acknowledgement has no TID stored and
therefore the hardware is not able to provide us the corresponding TID.

The TID set by the hardware in the tx status descriptor has to be seen as
undefined and not as a valid TID value for normal acknowledgements. Doing
otherwise results in a massive amount of retransmissions and stalls of
connections.

Users may experience low bandwidth and complete connection stalls in
environments with transfers using multiple TIDs.

This regression was introduced in b11b160def
("ath9k: validate the TID in the tx status information").

Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
Cc: stable@vger.kernel.org
Acked-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2012-10-30 15:58:54 -04:00
..
ath ath9k: Test for TID only in BlockAcks while checking tx status 2012-10-30 15:58:54 -04:00
b43 b43: Fix oops on unload when firmware not found 2012-10-24 13:18:09 -04:00
b43legacy b43legacy: Fix crash on unload when firmware not available 2012-09-28 13:54:07 -04:00
brcm80211 brcmfmac: fix potential NULL dereference 2012-10-24 13:18:08 -04:00
hostap Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-10-02 13:38:27 -07:00
ipw2x00 net/wireless: ipw2200: Fix panic occurring in ipw_handle_promiscuous_tx() 2012-10-15 14:45:52 -04:00
iwlegacy Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-10-02 13:38:27 -07:00
iwlwifi iwlwifi: fix 6000 series channel switch command 2012-10-16 16:28:36 +02:00
libertas Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-09-14 13:53:49 -04:00
libertas_tf mac80211: move TX station pointer and restructure TX 2012-07-31 16:18:39 +02:00
mwifiex mwifiex: clean up scan state on error 2012-10-24 13:18:09 -04:00
orinoco orinoco: use is_zero_ether_addr() instead of memcmp() 2012-09-07 15:03:37 -04:00
p54 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-09-28 11:11:16 -04:00
prism54 wireless: Remove casts to same type 2012-06-06 09:31:33 -07:00
rt2x00 rt2800: validate step value for temperature compensation 2012-10-30 15:58:54 -04:00
rtl818x Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-08-24 12:25:30 -04:00
rtlwifi rtlwifi: pass rx setup error code to caller 2012-10-24 13:18:07 -04:00
ti wlcore: protect wlcore_op_set_key with mutex 2012-09-27 12:13:54 +03:00
zd1211rw Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-10-02 13:38:27 -07:00
Kconfig iwmc3200wifi: remove driver for unavailable hardware 2012-07-10 12:16:32 -04:00
Makefile iwmc3200wifi: remove driver for unavailable hardware 2012-07-10 12:16:32 -04:00
adm8211.c mac80211: move TX station pointer and restructure TX 2012-07-31 16:18:39 +02:00
adm8211.h
airo.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-09-14 13:53:49 -04:00
airo.h
airo_cs.c
at76c50x-usb.c wireless: at76c50x: eliminate hex2str() 2012-09-11 15:13:53 -04:00
at76c50x-usb.h
atmel.c wireless: Remove casts to same type 2012-06-06 09:31:33 -07:00
atmel.h
atmel_cs.c
atmel_pci.c
mac80211_hwsim.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-09-28 11:11:16 -04:00
mac80211_hwsim.h
mwl8k.c mac80211: move TX station pointer and restructure TX 2012-07-31 16:18:39 +02:00
ray_cs.c wireless: Remove casts to same type 2012-06-06 09:31:33 -07:00
ray_cs.h
rayctl.h
rndis_wlan.c rndis_wlan: remove pointless check from rndis_scan() 2012-09-11 15:31:44 -04:00
wl3501.h
wl3501_cs.c wl3501_cs: use is_broadcast_ether_addr() instead of memcmp() 2012-09-07 15:03:40 -04:00
zd1201.c
zd1201.h