mac80211: revert "wireless: set correct mandatory rate flags"

Revert upstream commit 1bd773c077de "wireless: set correct mandatory rate
flags", as it breaks 11s interoperability: nodes can only associate when
neither or both have this patch. As this is a regression from released
versions, revert to the old code for now.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
This commit is contained in:
Matthias Schiffer 2018-01-26 23:24:59 +01:00
parent cfdfa6d04e
commit d58c8f4029
No known key found for this signature in database
GPG key ID: 16EF3F64CB201D9C
2 changed files with 61 additions and 1 deletions

View file

@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=mac80211 PKG_NAME:=mac80211
PKG_VERSION:=2017-11-01 PKG_VERSION:=2017-11-01
PKG_RELEASE:=2 PKG_RELEASE:=3
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
PKG_HASH:=8437ab7886b988c8152e7a4db30b7f41009e49a3b2cb863edd05da1ecd7eb05a PKG_HASH:=8437ab7886b988c8152e7a4db30b7f41009e49a3b2cb863edd05da1ecd7eb05a

View file

@ -0,0 +1,60 @@
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Fri, 26 Jan 2018 23:23:37 +0100
Subject: [PATCH] Revert "wireless: set correct mandatory rate flags"
This reverts commit 1bd773c077deeeb2d9ced1fdb6d846169b8e7e4a.
---
net/wireless/util.c | 30 ++++++++++++++++--------------
1 file changed, 16 insertions(+), 14 deletions(-)
diff --git a/net/wireless/util.c b/net/wireless/util.c
index c69160694b6c..2bb37231c8fe 100644
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
@@ -157,30 +157,32 @@ static void set_mandatory_flags_band(str
case NL80211_BAND_2GHZ:
want = 7;
for (i = 0; i < sband->n_bitrates; i++) {
- switch (sband->bitrates[i].bitrate) {
- case 10:
- case 20:
- case 55:
- case 110:
+ if (sband->bitrates[i].bitrate == 10) {
sband->bitrates[i].flags |=
IEEE80211_RATE_MANDATORY_B |
IEEE80211_RATE_MANDATORY_G;
want--;
- break;
- case 60:
- case 120:
- case 240:
+ }
+
+ if (sband->bitrates[i].bitrate == 20 ||
+ sband->bitrates[i].bitrate == 55 ||
+ sband->bitrates[i].bitrate == 110 ||
+ sband->bitrates[i].bitrate == 60 ||
+ sband->bitrates[i].bitrate == 120 ||
+ sband->bitrates[i].bitrate == 240) {
sband->bitrates[i].flags |=
IEEE80211_RATE_MANDATORY_G;
want--;
- /* fall through */
- default:
+ }
+
+ if (sband->bitrates[i].bitrate != 10 &&
+ sband->bitrates[i].bitrate != 20 &&
+ sband->bitrates[i].bitrate != 55 &&
+ sband->bitrates[i].bitrate != 110)
sband->bitrates[i].flags |=
IEEE80211_RATE_ERP_G;
- break;
- }
}
- WARN_ON(want != 0 && want != 3);
+ WARN_ON(want != 0 && want != 3 && want != 6);
break;
case NL80211_BAND_60GHZ:
/* check for mandatory HT MCS 1..4 */