mac80211: backport STA assoc patch mt76
authorJohn Crispin <john@phrozen.org>
Wed, 7 Oct 2020 12:31:28 +0000 (14:31 +0200)
committerJohn Crispin <john@phrozen.org>
Wed, 7 Oct 2020 12:31:28 +0000 (14:31 +0200)
Signed-off-by: John Crispin <john@phrozen.org>
package/kernel/mac80211/patches/subsys/610-mac80211-fix-80mhz-assoc-to-160-80p80-on-6GHz.patch [new file with mode: 0644]

diff --git a/package/kernel/mac80211/patches/subsys/610-mac80211-fix-80mhz-assoc-to-160-80p80-on-6GHz.patch b/package/kernel/mac80211/patches/subsys/610-mac80211-fix-80mhz-assoc-to-160-80p80-on-6GHz.patch
new file mode 100644 (file)
index 0000000..7cca44e
--- /dev/null
@@ -0,0 +1,36 @@
+From 9e4f37646fc34a20d9330f316e773a9a47a19a21 Mon Sep 17 00:00:00 2001
+From: John Crispin <john@phrozen.org>
+Date: Mon, 14 Sep 2020 12:19:22 +0200
+Subject: [PATCH 22/22] mac80211: fix 80mhz assoc to 160/80p80 on 6GHz
+
+Trying to associcate to an AP on 6GHz with a STA that only has 80Mhz
+the cf2 field inside the chandef will get set causing the assoc to fail
+when trying to validate the chandef. Fix this by checking the support flags
+prior to setting cf2.
+
+Signed-off-by: John Crispin <john@phrozen.org>
+---
+ net/mac80211/util.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/net/mac80211/util.c b/net/mac80211/util.c
+index c8504ffc71a1..8d3bfc0fe176 100644
+--- a/net/mac80211/util.c
++++ b/net/mac80211/util.c
+@@ -3353,9 +3353,10 @@ bool ieee80211_chandef_he_6ghz_oper(struct ieee80211_sub_if_data *sdata,
+               he_chandef.center_freq1 =
+                       ieee80211_channel_to_frequency(he_6ghz_oper->ccfs0,
+                                                      NL80211_BAND_6GHZ);
+-              he_chandef.center_freq2 =
+-                      ieee80211_channel_to_frequency(he_6ghz_oper->ccfs1,
+-                                                     NL80211_BAND_6GHZ);
++              if (support_80_80 || support_160)
++                      he_chandef.center_freq2 =
++                              ieee80211_channel_to_frequency(he_6ghz_oper->ccfs1,
++                                                             NL80211_BAND_6GHZ);
+       }
+       if (!cfg80211_chandef_valid(&he_chandef)) {
+-- 
+2.25.1
+