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 6bb3b1f..b4f2b01 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) {