[openwrt/openwrt] mac80211: revert "wireless: set correct mandatory rate flags"

LEDE Commits lede-commits at lists.infradead.org
Fri Jan 26 14:31:17 PST 2018


neoraider pushed a commit to openwrt/openwrt.git, branch master:
https://git.lede-project.org/d58c8f4029fa2c214454d7a5229e4964cbbc8fe1

commit d58c8f4029fa2c214454d7a5229e4964cbbc8fe1
Author: Matthias Schiffer <mschiffer at universe-factory.net>
AuthorDate: Fri Jan 26 23:24:59 2018 +0100

    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 at universe-factory.net>
---
 package/kernel/mac80211/Makefile                   |  2 +-
 ...wireless-set-correct-mandatory-rate-flags.patch | 60 ++++++++++++++++++++++
 2 files changed, 61 insertions(+), 1 deletion(-)

diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile
index cf17c9f..c9a5a8f 100644
--- a/package/kernel/mac80211/Makefile
+++ b/package/kernel/mac80211/Makefile
@@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk
 PKG_NAME:=mac80211
 
 PKG_VERSION:=2017-11-01
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
 PKG_HASH:=8437ab7886b988c8152e7a4db30b7f41009e49a3b2cb863edd05da1ecd7eb05a
 
diff --git a/package/kernel/mac80211/patches/324-Revert-wireless-set-correct-mandatory-rate-flags.patch b/package/kernel/mac80211/patches/324-Revert-wireless-set-correct-mandatory-rate-flags.patch
new file mode 100644
index 0000000..2ae9b7d
--- /dev/null
+++ b/package/kernel/mac80211/patches/324-Revert-wireless-set-correct-mandatory-rate-flags.patch
@@ -0,0 +1,60 @@
+From: Matthias Schiffer <mschiffer at 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 */



More information about the lede-commits mailing list