carl9170: fix HT peer BA session corruption
authorChristian Lamparter <chunkeey@googlemail.com>
Sat, 7 Jul 2012 19:13:59 +0000 (21:13 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 11 Jul 2012 19:38:26 +0000 (15:38 -0400)
commitc9122c0d63a50bab0a97dc936a38c0f921b6930e
tree7263d06049fc2a21971e363557f7bdc17a26f4ad
parent4519a7433835f1a8dda242ad508233fcc5963545
carl9170: fix HT peer BA session corruption

This patch adds an alternative tx status path
for BlockAck Requests as the hardware doesn't
recognize that a BlockAck Requests is usually
acked with a BlockAck and not a legacy ACK.

Without this patch, the stack would constantly
resent old and stale BARs. So, depending on the
receiver stack, this could lead to:

 - "stuck" ba sessions and package loss, as the
   stale BAR would reset the sequence each time.

 - lots of reorder releases.

 - ...

Reported-by: Sean Patrick Santos <quantheory@gmail.com>
Reported-by: MikoĊ‚aj Kuligowski <mikolaj.q@wp.pl>
Reported-by: Per-Erik Westerberg <per-erik.westerberg@bredband.net>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/carl9170/carl9170.h
drivers/net/wireless/ath/carl9170/fw.c
drivers/net/wireless/ath/carl9170/main.c
drivers/net/wireless/ath/carl9170/rx.c
drivers/net/wireless/ath/carl9170/tx.c