]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: mac80211: refactor BW limitation check for CSA parsing
authorMichael-CY Lee <michael-cy.lee@mediatek.com>
Wed, 9 Oct 2024 12:18:12 +0000 (20:18 +0800)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 23 Oct 2024 14:46:48 +0000 (16:46 +0200)
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>
net/mac80211/spectmgmt.c

index 073ff9e0f39704539ba5bb2c927da69867f072fb..c6015cd00372c45793541dac20a91f5dda01733e 100644 (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,