From: Michael-CY Lee Date: Wed, 9 Oct 2024 12:18:12 +0000 (+0800) Subject: wifi: mac80211: refactor BW limitation check for CSA parsing X-Git-Tag: v6.13-rc1~135^2~195^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2d63e6530ec1f50f57c1cde598274d055fb7a36c;p=thirdparty%2Fkernel%2Flinux.git wifi: mac80211: refactor BW limitation check for CSA parsing Refactor the BW limitation check to a more general format when parsing CSA. Also, the original BW check did not account for BW less than 160 MHz. Signed-off-by: Michael-CY Lee Link: https://patch.msgid.link/20241009121812.2419-1-michael-cy.lee@mediatek.com Signed-off-by: Johannes Berg --- diff --git a/net/mac80211/spectmgmt.c b/net/mac80211/spectmgmt.c index 073ff9e0f3970..c6015cd00372c 100644 --- a/net/mac80211/spectmgmt.c +++ b/net/mac80211/spectmgmt.c @@ -377,13 +377,8 @@ int ieee80211_parse_ch_switch_ie(struct ieee80211_sub_if_data *sdata, /* capture the AP chandef before (potential) downgrading */ csa_ie->chanreq.ap = new_chandef; - if (conn->bw_limit < IEEE80211_CONN_BW_LIMIT_320 && - new_chandef.width == NL80211_CHAN_WIDTH_320) - ieee80211_chandef_downgrade(&new_chandef, NULL); - - if (conn->bw_limit < IEEE80211_CONN_BW_LIMIT_160 && - (new_chandef.width == NL80211_CHAN_WIDTH_80P80 || - new_chandef.width == NL80211_CHAN_WIDTH_160)) + while (conn->bw_limit < + ieee80211_min_bw_limit_from_chandef(&new_chandef)) ieee80211_chandef_downgrade(&new_chandef, NULL); if (!cfg80211_chandef_compatible(&new_chandef,