wifi: mac80211: don't recalc min def for S1G chan ctx

__ieee80211_recalc_chanctx_min_def() currently does not attempt
to find the min def for S1G widths, meaning the BW will never change.
However, the following call into ieee80211_chan_bw_change() will
lead to a WARN within ieee80211_chan_width_to_rx_bw(). Not only that,
this entire path is geared towards 20MHz based channels, so it doesn't
make sense anyway. For now, return early when calculating the mindef
for S1G channels.

Fixes: d879d4da45 ("wifi: mac80211: clean up initial STA NSS/bandwidth handling")
Signed-off-by: Lachlan Hodges <lachlan.hodges@morsemicro.com>
Link: https://patch.msgid.link/20260506131925.2088353-3-lachlan.hodges@morsemicro.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Lachlan Hodges 2026-05-06 23:19:25 +10:00 committed by Johannes Berg
parent 3c18c2e545
commit 928e0abdad

View File

@ -751,8 +751,14 @@ _ieee80211_recalc_chanctx_min_def(struct ieee80211_local *local,
struct ieee80211_link_data *rsvd_for,
bool check_reserved)
{
u32 changed = __ieee80211_recalc_chanctx_min_def(local, ctx, rsvd_for,
check_reserved);
u32 changed;
/* No recalc for S1G chan ctx's */
if (cfg80211_chandef_is_s1g(&ctx->conf.def))
return;
changed = __ieee80211_recalc_chanctx_min_def(local, ctx, rsvd_for,
check_reserved);
/* check is BW narrowed */
ieee80211_chan_bw_change(local, ctx, false, true);