mac80211: rt2x00: no longer use TXOP_BACKOFF for probe frames
Import a revert-commit from Stanislaw Gruszka which significantly
improves WiFi performance on rt2x00 based hardware.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry-picked from commit f4a639a3d7)
			
			
This commit is contained in:
		| @@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk | |||||||
| PKG_NAME:=mac80211 | PKG_NAME:=mac80211 | ||||||
|  |  | ||||||
| PKG_VERSION:=2017-01-31 | PKG_VERSION:=2017-01-31 | ||||||
| PKG_RELEASE:=4 | PKG_RELEASE:=5 | ||||||
| PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources | PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources | ||||||
| PKG_BACKPORT_VERSION:= | PKG_BACKPORT_VERSION:= | ||||||
| PKG_HASH:=75e6d39e34cf156212a2509172a4a62b673b69eb4a1d9aaa565f7fa719fa2317 | PKG_HASH:=75e6d39e34cf156212a2509172a4a62b673b69eb4a1d9aaa565f7fa719fa2317 | ||||||
|   | |||||||
| @@ -0,0 +1,45 @@ | |||||||
|  | From 52a192362932f333a7ebafd581c4d9b81da2fec8 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Stanislaw Gruszka <sgruszka@redhat.com> | ||||||
|  | Date: Mon, 28 May 2018 13:25:06 +0200 | ||||||
|  | Subject: [PATCH] Revert "rt2800: use TXOP_BACKOFF for probe frames" | ||||||
|  |  | ||||||
|  | This reverts commit fb47ada8dc3c30c8e7b415da155742b49536c61e. | ||||||
|  |  | ||||||
|  | In some situations when we set TXOP_BACKOFF, the probe frame is | ||||||
|  | not sent at all. What it worse then sending probe frame as part | ||||||
|  | of AMPDU and can degrade 11n performance to 11g rates. | ||||||
|  |  | ||||||
|  | Cc: stable@vger.kernel.org | ||||||
|  | Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> | ||||||
|  | Signed-off-by: Kalle Valo <kvalo@codeaurora.org> | ||||||
|  | --- | ||||||
|  |  drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | 7 +++---- | ||||||
|  |  1 file changed, 3 insertions(+), 4 deletions(-) | ||||||
|  |  | ||||||
|  | diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | ||||||
|  | index a6884e73d2ab..7ddee980048b 100644 | ||||||
|  | --- a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | ||||||
|  | +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | ||||||
|  | @@ -372,16 +372,15 @@ static void rt2x00queue_create_tx_descriptor_ht(struct rt2x00_dev *rt2x00dev, | ||||||
|  |   | ||||||
|  |  	/* | ||||||
|  |  	 * Determine IFS values | ||||||
|  | -	 * - Use TXOP_BACKOFF for probe and management frames except beacons | ||||||
|  | +	 * - Use TXOP_BACKOFF for management frames except beacons | ||||||
|  |  	 * - Use TXOP_SIFS for fragment bursts | ||||||
|  |  	 * - Use TXOP_HTTXOP for everything else | ||||||
|  |  	 * | ||||||
|  |  	 * Note: rt2800 devices won't use CTS protection (if used) | ||||||
|  |  	 * for frames not transmitted with TXOP_HTTXOP | ||||||
|  |  	 */ | ||||||
|  | -	if ((ieee80211_is_mgmt(hdr->frame_control) && | ||||||
|  | -	     !ieee80211_is_beacon(hdr->frame_control)) || | ||||||
|  | -	    (tx_info->flags & IEEE80211_TX_CTL_RATE_CTRL_PROBE)) | ||||||
|  | +	if (ieee80211_is_mgmt(hdr->frame_control) && | ||||||
|  | +	    !ieee80211_is_beacon(hdr->frame_control)) | ||||||
|  |  		txdesc->u.ht.txop = TXOP_BACKOFF; | ||||||
|  |  	else if (!(tx_info->flags & IEEE80211_TX_CTL_FIRST_FRAGMENT)) | ||||||
|  |  		txdesc->u.ht.txop = TXOP_SIFS; | ||||||
|  | --  | ||||||
|  | 2.17.1 | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user
	 Daniel Golle
					Daniel Golle