wifi: iwlwifi: mvm: disconnect long CSA only w/o alternative
authorJohannes Berg <johannes.berg@intel.com>
Wed, 30 Aug 2023 08:30:51 +0000 (11:30 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 11 Sep 2023 10:36:25 +0000 (12:36 +0200)
If there's an alternative link to use while the CSA is in
progress, there's no need to disconnect since another link
is still usable during the switching time. Change the code
here to handle that accordingly.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230830112059.dd1b96a37e51.Idafdcbfcb36ca4c486f4221aef77643869331514@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c

index 6bb3b1f5191328c0afdbde7bc681821f9d4fa614..b4f2b018388cd8fa0dedaa1d9181d1901ce503cd 100644 (file)
@@ -5459,7 +5459,8 @@ int iwl_mvm_pre_channel_switch(struct ieee80211_hw *hw,
                        goto out_unlock;
                }
 
-               if (chsw->delay > IWL_MAX_CSA_BLOCK_TX)
+               if (chsw->delay > IWL_MAX_CSA_BLOCK_TX &&
+                   hweight16(vif->valid_links) <= 1)
                        schedule_delayed_work(&mvmvif->csa_work, 0);
 
                if (chsw->block_tx) {