mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
wifi: iwlwifi: mld: skip MLO scan trigger when AP has no QBSS Load IE
When FW PHY statistics report high channel load (MCLM), the driver triggers an internal MLO scan to find a better link. However, link grade computation uses the QBSS Load IE from AP beacons, not MCLM data. If the AP does not broadcast a QBSS Load IE, the scan produces no benefit as the grade falls back to static band defaults regardless, and the same bad link will be selected anyway as the active link. Skip the MLO scan trigger when the AP does not advertise a QBSS Load IE. Signed-off-by: Avinash Bhatt <avinash.bhatt@intel.com> Link: https://patch.msgid.link/20260517100550.621538e20244.I7fdccb759508f32991cc06774cc7621725a58bd3@changeid Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
This commit is contained in:
parent
d157c79643
commit
2a5094c088
|
|
@ -859,9 +859,8 @@ iwl_mld_apply_puncturing_penalty(const struct ieee80211_bss_conf *link_conf,
|
|||
*grade = *grade * (n_subchannels - n_punctured) / n_subchannels;
|
||||
}
|
||||
|
||||
static int
|
||||
iwl_mld_get_chan_load_from_element(struct iwl_mld *mld,
|
||||
struct ieee80211_bss_conf *link_conf)
|
||||
int iwl_mld_get_chan_load_from_element(struct iwl_mld *mld,
|
||||
struct ieee80211_bss_conf *link_conf)
|
||||
{
|
||||
const struct cfg80211_bss_ies *ies;
|
||||
const struct element *bss_load_elem = NULL;
|
||||
|
|
|
|||
|
|
@ -145,6 +145,9 @@ unsigned int iwl_mld_get_link_grade(struct iwl_mld *mld,
|
|||
unsigned int iwl_mld_get_chan_load(struct iwl_mld *mld,
|
||||
struct ieee80211_bss_conf *link_conf);
|
||||
|
||||
int iwl_mld_get_chan_load_from_element(struct iwl_mld *mld,
|
||||
struct ieee80211_bss_conf *link_conf);
|
||||
|
||||
int iwl_mld_get_chan_load_by_others(struct iwl_mld *mld,
|
||||
struct ieee80211_bss_conf *link_conf,
|
||||
bool expect_active_link);
|
||||
|
|
|
|||
|
|
@ -1100,6 +1100,13 @@ static void iwl_mld_chan_load_update_iter(void *_data, u8 *mac,
|
|||
if (rcu_access_pointer(link_conf->chanctx_conf) != chanctx)
|
||||
continue;
|
||||
|
||||
/* No QBSS IE - links will be selected based on default channel
|
||||
* load values, so the same link will be selected again.
|
||||
* No point in scan.
|
||||
*/
|
||||
if (iwl_mld_get_chan_load_from_element(mld, link_conf) < 0)
|
||||
continue;
|
||||
|
||||
if (iwl_mld_chan_load_requires_scan(mld,
|
||||
link_conf,
|
||||
new_chan_load)) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user