mac80211: rt2x00: backport upstream patches
[openwrt/staging/pepe2k.git] / package / kernel / mac80211 / patches / rt2x00 / 072-rt2x00-do-not-set-IEEE80211_TX_STAT_AMPDU_NO_BACK-on.patch
1 From 567a9b766b47caffe4b1bf74823e7bc18532d875 Mon Sep 17 00:00:00 2001
2 From: Stanislaw Gruszka <sgruszka@redhat.com>
3 Date: Fri, 23 Aug 2019 09:09:56 +0200
4 Subject: [PATCH 13/15] rt2x00: do not set IEEE80211_TX_STAT_AMPDU_NO_BACK on
5 tx status
6
7 According to documentation IEEE80211_TX_STAT_AMPDU_NO_BACK is suppose
8 to be used when we do not recive BA (BlockAck). However on rt2x00 we
9 use it when remote station fail to decode one or more subframes within
10 AMPDU (some bits are not set in BlockAck bitmap). Setting the flag result
11 in sent of BAR (BlockAck Request) frame and this might result of abuse
12 of BA session, since remote station can sent BA with incorrect
13 sequence numbers after receiving BAR. This problem is visible especially
14 when connecting two rt2800 devices.
15
16 Previously I observed some performance benefits when using the flag
17 when connecting with iwlwifi devices. But currently possibly due
18 to reacent changes in rt2x00 removing the flag has no effect on
19 those test cases.
20
21 So remove the IEEE80211_TX_STAT_AMPDU_NO_BACK.
22
23 Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
24 Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
25 ---
26 drivers/net/wireless/ralink/rt2x00/rt2x00dev.c | 3 ---
27 1 file changed, 3 deletions(-)
28
29 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
30 +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
31 @@ -382,9 +382,6 @@ static void rt2x00lib_fill_tx_status(str
32 IEEE80211_TX_CTL_AMPDU;
33 tx_info->status.ampdu_len = 1;
34 tx_info->status.ampdu_ack_len = success ? 1 : 0;
35 -
36 - if (!success)
37 - tx_info->flags |= IEEE80211_TX_STAT_AMPDU_NO_BACK;
38 }
39
40 if (rate_flags & IEEE80211_TX_RC_USE_RTS_CTS) {