diff options
author | Miri Korenblit <miriam.rachel.korenblit@intel.com> | 2025-03-09 07:36:52 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2025-03-11 16:29:26 +0100 |
commit | d414ff7a733819f78a49b832fad6d4e7cb1f9150 (patch) | |
tree | 027d3d6bc5556bab1b7d15349ad5b761d1338eea | |
parent | f31d666f0b710818603a8b6a03cff23ea4a2ad0e (diff) |
wifi: iwlwifi: mld: fix bad RSSI handling
If the RSSI is dropping to below the threshold, we need to do a MLO
scan to try select a better link.
This is true also if the connection doesn't have EMLSR capability,
and also if we are in EMLSR.
Fix the logic to always check the RSSI (and do a MLO scan if needed).
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Link: https://patch.msgid.link/20250309073442.a31b95888244.If6dca30d657658fa902b19e07b6fbc86c48d69cb@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mld/stats.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mld/stats.c b/drivers/net/wireless/intel/iwlwifi/mld/stats.c index a9d3860d8f9c..75cb204c2419 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/stats.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/stats.c @@ -378,15 +378,11 @@ static void iwl_mld_update_link_sig(struct ieee80211_vif *vif, int sig, /* TODO: task=statistics handle CQM notifications */ - if (!iwl_mld_vif_has_emlsr_cap(vif)) - return; + if (sig < IWL_MLD_LOW_RSSI_MLO_SCAN_THRESH) + iwl_mld_int_mlo_scan(mld, vif); - /* Handle inactive EMLSR, check whether to switch links */ - if (!iwl_mld_emlsr_active(vif)) { - if (sig < IWL_MLD_LOW_RSSI_MLO_SCAN_THRESH) - iwl_mld_int_mlo_scan(mld, vif); + if (!iwl_mld_emlsr_active(vif)) return; - } /* We are in EMLSR, check if we need to exit */ exit_emlsr_thresh = |