]> git.baikalelectronics.ru Git - kernel.git/commit
rt2x00: Fix tx aggregation problems with some clients
authorHelmut Schaa <helmut.schaa@googlemail.com>
Mon, 28 Mar 2011 11:35:21 +0000 (13:35 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 4 Apr 2011 20:20:04 +0000 (16:20 -0400)
commitc815df1a4c377d4cd61f5880b7d208dafb04dcc7
tree23b22980164221d6a3cd26ca98b1e19074da1f86
parent36630bde4146abfb164706e42ab0d21274350a4b
rt2x00: Fix tx aggregation problems with some clients

Some clients seem to rely upon the reception of BlockAckReqs to flush
their rx reorder buffer. In order to fix aggregation for these clients
rt2x00 should send a BlockAckReq if the transmission of an AMPDU
subframe fails.

Introduce a new flag TXDONE_AMPDU to indicate that this is an AMPDU
subframe and pass IEEE80211_TX_STAT_AMPDU_NO_BACK to mac80211 if an
AMPDU subframe failed during transmission.

This fixes aggregation problems with Intel 5100 Windows STAs (and maybe
others as well).

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rt2x00/rt2800lib.c
drivers/net/wireless/rt2x00/rt2x00dev.c
drivers/net/wireless/rt2x00/rt2x00queue.h