mac80211: backport brcmfmac data structure rework
[openwrt/staging/wigyori.git] / package / kernel / mac80211 / patches / 090-Revert-rt2800-use-TXOP_BACKOFF-for-probe-frames.patch
1 From patchwork Mon May 28 11:25:06 2018
2 Content-Type: text/plain; charset="utf-8"
3 MIME-Version: 1.0
4 Content-Transfer-Encoding: 7bit
5 Subject: Revert "rt2800: use TXOP_BACKOFF for probe frames"
6 From: Stanislaw Gruszka <sgruszka@redhat.com>
7 X-Patchwork-Id: 10431861
8 Message-Id: <1527506706-6488-1-git-send-email-sgruszka@redhat.com>
9 To: linux-wireless@vger.kernel.org
10 Date: Mon, 28 May 2018 13:25:06 +0200
11
12 This reverts commit fb47ada8dc3c30c8e7b415da155742b49536c61e.
13
14 In some situations when we set TXOP_BACKOFF, the probe frame is
15 not sent at all. What it worse then sending probe frame as part
16 of AMPDU and can degrade 11n performance to 11g rates.
17
18 Cc: stable@vger.kernel.org
19 Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
20 ---
21 drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | 7 +++----
22 1 file changed, 3 insertions(+), 4 deletions(-)
23
24 diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
25 index a6884e73d2ab..7ddee980048b 100644
26 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
27 +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
28 @@ -372,16 +372,15 @@ static void rt2x00queue_create_tx_descriptor_ht(struct rt2x00_dev *rt2x00dev,
29
30 /*
31 * Determine IFS values
32 - * - Use TXOP_BACKOFF for probe and management frames except beacons
33 + * - Use TXOP_BACKOFF for management frames except beacons
34 * - Use TXOP_SIFS for fragment bursts
35 * - Use TXOP_HTTXOP for everything else
36 *
37 * Note: rt2800 devices won't use CTS protection (if used)
38 * for frames not transmitted with TXOP_HTTXOP
39 */
40 - if ((ieee80211_is_mgmt(hdr->frame_control) &&
41 - !ieee80211_is_beacon(hdr->frame_control)) ||
42 - (tx_info->flags & IEEE80211_TX_CTL_RATE_CTRL_PROBE))
43 + if (ieee80211_is_mgmt(hdr->frame_control) &&
44 + !ieee80211_is_beacon(hdr->frame_control))
45 txdesc->u.ht.txop = TXOP_BACKOFF;
46 else if (!(tx_info->flags & IEEE80211_TX_CTL_FIRST_FRAGMENT))
47 txdesc->u.ht.txop = TXOP_SIFS;