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 <michael-cy.lee@mediatek.com>
Link: https://patch.msgid.link/20241009121812.2419-1-michael-cy.lee@mediatek.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Michael-CY Lee 2024-10-09 20:18:12 +08:00 committed by Johannes Berg
parent f92e0cf19a
commit 2d63e6530e

View File

@ -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,