mac80211: Update to version 5.3.6
[openwrt/openwrt.git] / package / kernel / mac80211 / patches / rt2x00 / 015-rt2x00-do-not-set-IEEE80211_TX_STAT_AMPDU_NO_BACK-on-tx-status.patch
1 From patchwork Fri Aug 23 07:09:56 2019
2 Content-Type: text/plain; charset="utf-8"
3 MIME-Version: 1.0
4 Content-Transfer-Encoding: 7bit
5 X-Patchwork-Submitter: Stanislaw Gruszka <sgruszka@redhat.com>
6 X-Patchwork-Id: 11110703
7 X-Patchwork-Delegate: kvalo@adurom.com
8 From: Stanislaw Gruszka <sgruszka@redhat.com>
9 To: linux-wireless@vger.kernel.org
10 Subject: [PATCH] rt2x00: do not set IEEE80211_TX_STAT_AMPDU_NO_BACK on tx
11 status
12 Date: Fri, 23 Aug 2019 09:09:56 +0200
13 Message-Id: <1566544196-20371-1-git-send-email-sgruszka@redhat.com>
14 Sender: linux-wireless-owner@vger.kernel.org
15 List-ID: <linux-wireless.vger.kernel.org>
16 X-Mailing-List: linux-wireless@vger.kernel.org
17
18 According to documentation IEEE80211_TX_STAT_AMPDU_NO_BACK is suppose
19 to be used when we do not recive BA (BlockAck). However on rt2x00 we
20 use it when remote station fail to decode one or more subframes within
21 AMPDU (some bits are not set in BlockAck bitmap). Setting the flag result
22 in sent of BAR (BlockAck Request) frame and this might result of abuse
23 of BA session, since remote station can sent BA with incorrect
24 sequence numbers after receiving BAR. This problem is visible especially
25 when connecting two rt2800 devices.
26
27 Previously I observed some performance benefits when using the flag
28 when connecting with iwlwifi devices. But currently possibly due
29 to reacent changes in rt2x00 removing the flag has no effect on
30 those test cases.
31
32 So remove the IEEE80211_TX_STAT_AMPDU_NO_BACK.
33
34 Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
35 ---
36 drivers/net/wireless/ralink/rt2x00/rt2x00dev.c | 3 ---
37 1 file changed, 3 deletions(-)
38
39 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
40 +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
41 @@ -371,9 +371,6 @@ static void rt2x00lib_fill_tx_status(str
42 IEEE80211_TX_CTL_AMPDU;
43 tx_info->status.ampdu_len = 1;
44 tx_info->status.ampdu_ack_len = success ? 1 : 0;
45 -
46 - if (!success)
47 - tx_info->flags |= IEEE80211_TX_STAT_AMPDU_NO_BACK;
48 }
49
50 if (rate_flags & IEEE80211_TX_RC_USE_RTS_CTS) {