linux/drivers
Sven Eckelmann 7bbaeecbff ath9k: Test for TID only in BlockAcks while checking tx status
commit 6fe7cc71bb upstream.

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>
Acked-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-17 13:15:55 -08:00
..
accessibility
acpi ACPI: EC: Add a quirk for CLEVO M720T/M730T laptop 2012-10-21 09:27:57 -07:00
amba ARM: 7366/3: amba: Remove AMBA level regulator support 2012-04-13 14:04:08 +01:00
ata libata: Prevent interface errors with Seagate FreeAgent GoFlex 2012-10-02 10:30:35 -07:00
atm solos-pci: Fix DMA support 2012-06-10 00:36:08 +09:00
auxdisplay
base PM / Sleep: use resume event when call dpm_resume_early 2012-10-13 05:38:39 +09:00
bcma bcma: fix unregistration of cores 2012-10-31 10:03:02 -07:00
block floppy: do put_disk on current dr if blk_init_queue fails 2012-11-05 09:50:41 +01:00
bluetooth Bluetooth: Add support for Apple vendor-specific devices 2012-10-02 10:30:34 -07:00
cdrom
char tpm: Propagate error from tpm_transmit to fix a timeout hang 2012-10-21 09:28:01 -07:00
clk clk: Check parent for NULL in clk_change_rate 2012-07-19 08:58:59 -07:00
clocksource Revert "clocksource: Load the ACPI PM clocksource asynchronously" 2012-04-12 00:05:05 +02:00
connector
cpufreq cpufreq / powernow-k8: Remove usage of smp_processor_id() in preemptible code 2012-10-31 10:03:03 -07:00
cpuidle Merge branches 'idle-fix' and 'misc' into release 2012-04-06 21:48:59 -04:00
crypto crypto: mv_cesa requires on CRYPTO_HASH to build 2012-05-15 01:10:06 +00:00
dca
devfreq ARM: global cleanups 2012-03-27 16:03:32 -07:00
dio
dma dmaengine: imx-dma: fix missing unlock on error in imxdma_xfer_desc() 2012-10-31 10:03:02 -07:00
edac amd64_edac:__amd64_set_scrub_rate(): avoid overindexing scrubrates[] 2012-10-28 10:14:15 -07:00
eisa
firewire firewire: cdev: fix user memory corruption (i386 userland on amd64 kernel) 2012-10-21 09:27:58 -07:00
firmware firmware: Add missing attributes to EFI variable attribute print out from sysfs 2012-10-07 08:32:26 -07:00
gpio gpiolib: Don't return -EPROBE_DEFER to sysfs, or for invalid gpios 2012-11-05 09:50:41 +01:00
gpu drm/nouveau: headless mode by default if pci class != vga display 2012-11-05 09:50:42 +01:00
hid HID: microsoft: fix invalid rdesc for 3k kbd 2012-11-05 09:50:42 +01:00
hsi HSI: hsi_char: Remove max_data_size from sysfs 2012-04-23 14:23:32 +03:00
hv Drivers: hv: Cleanup error handling in vmbus_open() 2012-10-31 10:02:58 -07:00
hwmon hwmon: (ad7314) Add 'name' sysfs attribute 2012-10-02 10:30:06 -07:00
hwspinlock hwspinlock/core: use global ID to register hwspinlocks on multiple devices 2012-07-16 09:04:25 -07:00
i2c i2c-i801: Add Device IDs for Intel Lynx Point-LP PCH 2012-09-14 10:00:33 -07:00
ide Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
idle simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
ieee802154
infiniband infiniband: pass rdma_cm module to netlink_dump_start 2012-10-28 10:14:15 -07:00
input Input: tsc40 - remove wrong announcement of pressure support 2012-11-17 13:15:55 -08:00
iommu iommu/tegra: smmu: Fix deadly typo 2012-10-28 10:14:15 -07:00
isdn isdnloop: fix and simplify isdnloop_init() 2012-10-02 10:29:35 -07:00
leds drivers/leds: correct __devexit annotations 2012-05-10 15:06:44 -07:00
lguest
macintosh Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
mca
md md/raid1: Fix assembling of arrays containing Replacements. 2012-11-05 09:50:41 +01:00
media media: au0828: fix case where STREAMOFF being called on stopped stream causes BUG() 2012-10-28 10:14:15 -07:00
memstick
message Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
mfd mfd: max8925: Move _IO resources out of ioport_ioresource 2012-10-13 05:38:38 +09:00
misc drivers/misc/sgi-xp/xpc_uv.c: SGI XPC fails to load when cpu 0 is out of IRQ resources 2012-10-02 10:30:22 -07:00
mmc mmc: sh-mmcif: avoid oops on spurious interrupts 2012-10-13 05:38:59 +09:00
mtd mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver 2012-10-28 10:14:16 -07:00
net ath9k: Test for TID only in BlockAcks while checking tx status 2012-11-17 13:15:55 -08:00
nfc
nubus Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
of gpio: Fix range check in of_gpio_simple_xlate() 2012-04-10 14:20:56 -06:00
oprofile oprofile: perf: use NR_CPUS instead or nr_cpumask_bits for static array 2012-07-16 09:04:21 -07:00
parisc parisc: move definition of PAGE0 to asm/page.h 2012-05-10 15:12:08 -07:00
parport
pci PCI: Check P2P bridge for invalid secondary/subordinate range 2012-10-13 05:38:48 +09:00
pcmcia pcmcia: sharpsl: don't discard sharpsl_pcmcia_ops 2012-10-28 10:14:13 -07:00
pinctrl pinctrl: tegra: set low power mode bank width to 2 2012-10-28 10:14:14 -07:00
platform asus-nb-wmi: add some video toggle keys 2012-10-02 10:30:23 -07:00
pnp Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux 2012-03-30 16:45:39 -07:00
power Various small bugfixes and enhancements, plus two new drivers: 2012-03-30 16:09:02 -07:00
pps
ps3
ptp ptp_pch: Add missing #include <linux/slab.h> 2012-05-16 14:44:44 -04:00
rapidio rapidio/tsi721: fix unused variable compiler warning 2012-09-14 10:00:20 -07:00
regulator regulator: twl-regulator: fix up VINTANA1/VINTANA2 2012-09-14 10:00:21 -07:00
remoteproc remoteproc: fix a potential NULL-dereference on cleanup 2012-10-07 08:32:28 -07:00
rpmsg rpmsg: fix dependency on initialization order 2012-07-19 08:58:57 -07:00
rtc drivers/rtc/rtc-imxdi.c: add missing spin lock initialization 2012-10-31 10:02:56 -07:00
s390 SCSI: zfcp: only access zfcp_scsi_dev for valid scsi_device 2012-10-13 05:38:47 +09:00
sbus Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
scsi SCSI: scsi_debug: Fix off-by-one bug when unmapping region 2012-10-21 09:27:58 -07:00
sfi
sh SuperH updates for 3.4 merge window 2012-03-30 00:09:17 -07:00
sn
spi spi/pl022: disable port when unused 2012-08-09 08:31:38 -07:00
ssb
staging staging: comedi: amplc_pc236: fix invalid register access during detach 2012-10-31 10:03:19 -07:00
target target: Fix double-free of se_cmd in target_complete_tmr_failure 2012-11-05 09:50:42 +01:00
tc
thermal
tty kdb,vt_console: Fix missed data due to pager overruns 2012-10-21 09:27:59 -07:00
uio
usb USB: mos7840: remove invalid disconnect handling 2012-10-31 10:03:00 -07:00
uwb uwb: fix error handling 2012-04-18 13:15:51 -07:00
vhost vhost: fix mergeable bufs on BE hosts 2012-10-31 10:03:01 -07:00
video viafb: don't touch clock state on OLPC XO-1.5 2012-10-21 09:27:59 -07:00
virt
virtio virtio: balloon: let host know of updated balloon size before module removal 2012-05-17 12:14:34 +03:00
vlynq
w1
watchdog hpwdt: Fix kdump issue in hpwdt 2012-10-02 10:30:08 -07:00
xen xen/gntdev: don't leak memory from IOCTL_GNTDEV_MAP_GRANT_REF 2012-11-17 13:15:54 -08:00
zorro
Kconfig Merge branch 'for-next' of git://gitorious.org/kernel-hsi/kernel-hsi 2012-04-02 09:50:40 -07:00
Makefile Merge branch 'for-next' of git://gitorious.org/kernel-hsi/kernel-hsi 2012-04-02 09:50:40 -07:00