mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 20:14:06 +02:00
wifi: iwlwifi: mvm: use only beacon BSS load for active links
For active links, don't take information that may have been received in probe responses, as those are not protected. For inactive links, there may not be a choice. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com> Link: https://msgid.link/20240527190228.6947dc462fa9.I2076961211d6785c8a15b4308e0e87a413148222@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
f1c9ba4403
commit
d9b7531fe9
|
|
@ -492,17 +492,27 @@ iwl_mvm_get_puncturing_factor(const struct ieee80211_bss_conf *link_conf)
|
|||
static unsigned int
|
||||
iwl_mvm_get_chan_load(struct ieee80211_bss_conf *link_conf)
|
||||
{
|
||||
struct ieee80211_vif *vif = link_conf->vif;
|
||||
struct iwl_mvm_vif_link_info *mvm_link =
|
||||
iwl_mvm_vif_from_mac80211(link_conf->vif)->link[link_conf->link_id];
|
||||
const struct element *bss_load_elem;
|
||||
const struct ieee80211_bss_load_elem *bss_load;
|
||||
enum nl80211_band band = link_conf->chanreq.oper.chan->band;
|
||||
const struct cfg80211_bss_ies *ies;
|
||||
unsigned int chan_load;
|
||||
u32 chan_load_by_us;
|
||||
|
||||
rcu_read_lock();
|
||||
bss_load_elem = ieee80211_bss_get_elem(link_conf->bss,
|
||||
WLAN_EID_QBSS_LOAD);
|
||||
if (ieee80211_vif_link_active(vif, link_conf->link_id))
|
||||
ies = rcu_dereference(link_conf->bss->beacon_ies);
|
||||
else
|
||||
ies = rcu_dereference(link_conf->bss->ies);
|
||||
|
||||
if (ies)
|
||||
bss_load_elem = cfg80211_find_elem(WLAN_EID_QBSS_LOAD,
|
||||
ies->data, ies->len);
|
||||
else
|
||||
bss_load_elem = NULL;
|
||||
|
||||
/* If there isn't BSS Load element, take the defaults */
|
||||
if (!bss_load_elem ||
|
||||
|
|
|
|||
|
|
@ -208,6 +208,7 @@ static void setup_link_conf(struct kunit *test)
|
|||
bss_load->channel_util = params->channel_util;
|
||||
|
||||
rcu_assign_pointer(bss.ies, ies);
|
||||
rcu_assign_pointer(bss.beacon_ies, ies);
|
||||
}
|
||||
|
||||
static void test_link_grading(struct kunit *test)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user