* [PATCH] mac80211: process S1G Operation element before HT
@ 2020-09-29 18:19 Thomas Pedersen
2020-09-29 18:32 ` Johannes Berg
0 siblings, 1 reply; 3+ messages in thread
From: Thomas Pedersen @ 2020-09-29 18:19 UTC (permalink / raw)
To: Johannes Berg; +Cc: linux-wireless, Thomas Pedersen
The sband->ht_cap was being processed before S1G Operation
element. Since the HT capability element should not be
present on the S1G band, avoid processing potential
garbage by moving the call to
ieee80211_apply_htcap_overrides() to after the S1G block.
Signed-off-by: Thomas Pedersen <thomas@adapt-ip.com>
---
net/mac80211/mlme.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 38e87ac9902e..80b4d46d0b20 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -174,9 +174,6 @@ ieee80211_determine_chantype(struct ieee80211_sub_if_data *sdata,
goto out;
}
- memcpy(&sta_ht_cap, &sband->ht_cap, sizeof(sta_ht_cap));
- ieee80211_apply_htcap_overrides(sdata, &sta_ht_cap);
-
if (s1g_oper && sband->band == NL80211_BAND_S1GHZ) {
ieee80211_chandef_s1g_oper(s1g_oper, chandef);
ret = IEEE80211_STA_DISABLE_HT | IEEE80211_STA_DISABLE_40MHZ |
@@ -186,6 +183,9 @@ ieee80211_determine_chantype(struct ieee80211_sub_if_data *sdata,
goto out;
}
+ memcpy(&sta_ht_cap, &sband->ht_cap, sizeof(sta_ht_cap));
+ ieee80211_apply_htcap_overrides(sdata, &sta_ht_cap);
+
if (!ht_oper || !sta_ht_cap.ht_supported) {
ret = IEEE80211_STA_DISABLE_HT |
IEEE80211_STA_DISABLE_VHT |
--
2.20.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] mac80211: process S1G Operation element before HT
2020-09-29 18:19 [PATCH] mac80211: process S1G Operation element before HT Thomas Pedersen
@ 2020-09-29 18:32 ` Johannes Berg
2020-09-29 18:44 ` Thomas Pedersen
0 siblings, 1 reply; 3+ messages in thread
From: Johannes Berg @ 2020-09-29 18:32 UTC (permalink / raw)
To: Thomas Pedersen; +Cc: linux-wireless
On Tue, 2020-09-29 at 11:19 -0700, Thomas Pedersen wrote:
> The sband->ht_cap was being processed before S1G Operation
> element. Since the HT capability element should not be
> present on the S1G band, avoid processing potential
> garbage by moving the call to
> ieee80211_apply_htcap_overrides() to after the S1G block.
Ah, heh. I hadn't even realized that.
What I meant though was something else: we have
if (s1g_oper && sband->band == NL80211_BAND_S1GHZ) {
...
goto out;
}
// process ht cap overrides (after this patch)
// check HT oper
// check VHT oper
// ...
So given that first condition, if you actually have an S1G AP *without*
S1G operation element (for some reason), you'd start processing HT, VHT,
and whatever else capabilities, sending us down a misleading and likely
very confusing path, which seems like it should be avoided?
johannes
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] mac80211: process S1G Operation element before HT
2020-09-29 18:32 ` Johannes Berg
@ 2020-09-29 18:44 ` Thomas Pedersen
0 siblings, 0 replies; 3+ messages in thread
From: Thomas Pedersen @ 2020-09-29 18:44 UTC (permalink / raw)
To: Johannes Berg; +Cc: linux-wireless
On 2020-09-29 11:32, Johannes Berg wrote:
> On Tue, 2020-09-29 at 11:19 -0700, Thomas Pedersen wrote:
>> The sband->ht_cap was being processed before S1G Operation
>> element. Since the HT capability element should not be
>> present on the S1G band, avoid processing potential
>> garbage by moving the call to
>> ieee80211_apply_htcap_overrides() to after the S1G block.
>
> Ah, heh. I hadn't even realized that.
>
> What I meant though was something else: we have
>
> if (s1g_oper && sband->band == NL80211_BAND_S1GHZ) {
> ...
> goto out;
> }
>
> // process ht cap overrides (after this patch)
>
> // check HT oper
>
> // check VHT oper
>
> // ...
>
> So given that first condition, if you actually have an S1G AP *without*
> S1G operation element (for some reason), you'd start processing HT,
> VHT,
> and whatever else capabilities, sending us down a misleading and likely
> very confusing path, which seems like it should be avoided?
Ah ok, yes the !s1g_oper case. I'll take a look.
--
thomas
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-09-29 18:44 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-09-29 18:19 [PATCH] mac80211: process S1G Operation element before HT Thomas Pedersen
2020-09-29 18:32 ` Johannes Berg
2020-09-29 18:44 ` Thomas Pedersen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox