mac80211: move csa_active setting in STA CSA
authorMichal Kazior <michal.kazior@tieto.com>
Wed, 29 Jan 2014 06:56:19 +0000 (07:56 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 4 Feb 2014 20:58:10 +0000 (21:58 +0100)
The sdata->vif.csa_active could be left set after,
e.g. channel context constraints check fail in STA
mode leaving the interface in a strange state for
a brief period of time until it is disconnected.
This was harmless but ugly.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Reviewed-by: Luciano Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/mlme.c

index cadf05905e5aec83bbc8fc20855320f39f457c9e..6c9ebca02394abf6e6e1fa84052ba9922414b104 100644 (file)
@@ -1012,7 +1012,6 @@ ieee80211_sta_process_chanswitch(struct ieee80211_sub_if_data *sdata,
        }
 
        ifmgd->flags |= IEEE80211_STA_CSA_RECEIVED;
-       sdata->vif.csa_active = true;
 
        mutex_lock(&local->chanctx_mtx);
        if (local->use_chanctx) {
@@ -1050,6 +1049,7 @@ ieee80211_sta_process_chanswitch(struct ieee80211_sub_if_data *sdata,
        mutex_unlock(&local->chanctx_mtx);
 
        sdata->csa_chandef = csa_ie.chandef;
+       sdata->vif.csa_active = true;
 
        if (csa_ie.mode)
                ieee80211_stop_queues_by_reason(&local->hw,