summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi
diff options
context:
space:
mode:
authorJohannes Berg2015-03-10 10:47:57 +0100
committerEmmanuel Grumbach2015-03-12 08:05:49 +0100
commit060b4460c47143440e77e6721f68ef756674d207 (patch)
tree62633540e814ce1f7fe244ca51c93922e12d5132 /drivers/net/wireless/iwlwifi
parentiwlwifi: dvm: drop VO packets when mac80211 tells us to (diff)
downloadkernel-qcow2-linux-060b4460c47143440e77e6721f68ef756674d207.tar.gz
kernel-qcow2-linux-060b4460c47143440e77e6721f68ef756674d207.tar.xz
kernel-qcow2-linux-060b4460c47143440e77e6721f68ef756674d207.zip
iwlwifi: mvm: disconnect if CSA time event fails scheduling
If this situation ever happens, the mac80211 state machine gets confused because it never clears csa_active. There was a separate bug that lead to this happening with a working connection, but it isn't very robust to try to keep the connection up in this case. When removing the time event the CSA essentially procedure stops, so the safest thing to do is to disconnect in this case. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Reviewed-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi')
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/time-event.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/time-event.c b/drivers/net/wireless/iwlwifi/mvm/time-event.c
index f8d6f306dd76..4b81c0bf63b0 100644
--- a/drivers/net/wireless/iwlwifi/mvm/time-event.c
+++ b/drivers/net/wireless/iwlwifi/mvm/time-event.c
@@ -197,6 +197,8 @@ iwl_mvm_te_handle_notify_csa(struct iwl_mvm *mvm,
struct iwl_time_event_notif *notif)
{
if (!le32_to_cpu(notif->status)) {
+ if (te_data->vif->type == NL80211_IFTYPE_STATION)
+ ieee80211_connection_loss(te_data->vif);
IWL_DEBUG_TE(mvm, "CSA time event failed to start\n");
iwl_mvm_te_clear_data(mvm, te_data);
return;