]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iwlwifi: mvm: csa: do not abort CSA before disconnect
authorShaul Triebitz <shaul.triebitz@intel.com>
Sun, 17 Jan 2021 14:52:27 +0000 (16:52 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Fri, 5 Feb 2021 09:55:16 +0000 (11:55 +0200)
While disconnecting from the AP due to bad channel switch
params (e.g. too long Tx block), do not send the firmware
'CSA abort' before disconnecting. That causes canceling the
immediate quiet and can cause transmitting data before the
disconnection happens.

Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20210117164916.b9af359a675f.I996fc7eb3d94e9539f8b117017c428448c42c7ad@changeid
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c

index 947741302e6aa2f14cf93b787eeae21682c09de9..4e14a97bd16896b7576a36c7aae2d1aa9574f3f6 100644 (file)
@@ -1367,15 +1367,13 @@ static void iwl_mvm_abort_channel_switch(struct ieee80211_hw *hw,
 
 static void iwl_mvm_channel_switch_disconnect_wk(struct work_struct *wk)
 {
-       struct iwl_mvm *mvm;
        struct iwl_mvm_vif *mvmvif;
        struct ieee80211_vif *vif;
 
        mvmvif = container_of(wk, struct iwl_mvm_vif, csa_work.work);
        vif = container_of((void *)mvmvif, struct ieee80211_vif, drv_priv);
-       mvm = mvmvif->mvm;
 
-       iwl_mvm_abort_channel_switch(mvm->hw, vif);
+       /* Trigger disconnect (should clear the CSA state) */
        ieee80211_chswitch_done(vif, false);
 }