2
2
Date: Mon, 6 Jan 2025 08:30:35 +0100
3
3
Subject: net: mac80211: override incompatible basic-rates for mesh
4
4
5
+ This is a dirty hack for Gluon.
6
+
7
+ We assume basic rate setup only affects the rate-controller on the TX
8
+ side. As all devices we support have at least a 802.11n radio and thus
9
+ cover 802.11b as well as 802.11g on 2.4 GHz, they are compatible with
10
+ each other.
11
+
12
+ As the basic rate was incorrectly set for mesh interfaces in the past,
13
+ connections between mesh neighbors would fail when altering the basic
14
+ rate.
15
+
16
+ This patch ignores mismatches in the basic-rate field. By doing so, we
17
+ avoid implementing some sort of scheduled switch between wireless
18
+ configurations.
19
+
5
20
Signed-off-by: David Bauer <
[email protected] >
6
21
7
22
diff --git a/package/kernel/mac80211/patches/subsys/995-net-mac80211-override-incompatible-basic-rates-for-m.patch b/package/kernel/mac80211/patches/subsys/995-net-mac80211-override-incompatible-basic-rates-for-m.patch
8
23
new file mode 100644
9
- index 0000000000000000000000000000000000000000..19ca64d5012d2974ab2a48e9363ecaa3b60aed4c
24
+ index 0000000000000000000000000000000000000000..efcf0b4f041bb21184e9cd997bc6caca4729a1fe
10
25
--- /dev/null
11
26
+++ b/package/kernel/mac80211/patches/subsys/995-net-mac80211-override-incompatible-basic-rates-for-m.patch
12
- @@ -0,0 +1,46 @@
27
+ @@ -0,0 +1,37 @@
13
28
+ From 091e1eea9e34db7cbf84379021fcbff82887e09a Mon Sep 17 00:00:00 2001
14
29
+ From: David Bauer <[email protected] >
15
30
+ Date: Mon, 6 Jan 2025 08:23:54 +0100
@@ -35,24 +50,15 @@ index 0000000000000000000000000000000000000000..19ca64d5012d2974ab2a48e9363ecaa3
35
50
+ net/mac80211/mesh.c | 7 +++++--
36
51
+ 1 file changed, 5 insertions(+), 2 deletions(-)
37
52
+
38
- + diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c
39
- + index 25223184d6e5..53b5339be5d0 100644
40
53
+ --- a/net/mac80211/mesh.c
41
54
+ +++ b/net/mac80211/mesh.c
42
- + @@ -92,8 +92,11 @@ bool mesh_matches_local(struct ieee80211_sub_if_data *sdata,
55
+ + @@ -94,9 +94,6 @@ bool mesh_matches_local(struct ieee80211
43
56
+ ieee80211_sta_get_rates(sdata, ie, sband->band,
44
57
+ &basic_rates);
45
58
+
46
59
+ - if (sdata->vif.bss_conf.basic_rates != basic_rates)
47
60
+ - return false;
48
- + + if (sdata->vif.bss_conf.basic_rates != basic_rates) {
49
- + + wiphy_warn(sdata->wdev.wiphy,
50
- + + "ignoring basic rate mismatch for peer (local=%x peer=%x)\n",
51
- + + sdata->vif.bss_conf.basic_rates, basic_rates);
52
- + + }
53
- +
54
- + cfg80211_chandef_create(&sta_chan_def, sdata->vif.bss_conf.chandef.chan,
61
+ + -
62
+ + cfg80211_chandef_create(&sta_chan_def, sdata->vif.bss_conf.chanreq.oper.chan,
55
63
+ NL80211_CHAN_NO_HT);
56
- + --
57
- + 2.45.2
58
- +
64
+ + ieee80211_chandef_ht_oper(ie->ht_operation, &sta_chan_def);
0 commit comments