summaryrefslogtreecommitdiff
path: root/net/mac80211/util.c
diff options
context:
space:
mode:
authorNaftali Goldstein <naftali.goldstein@intel.com>2019-05-29 15:25:30 +0300
committerJohannes Berg <johannes.berg@intel.com>2019-06-14 16:46:33 +0300
commitf8891461a277ec0afc493fd30cd975a38048a038 (patch)
tree054876514c8f092ed77591cebba2e7ebfc7997e6 /net/mac80211/util.c
parentebb3ca3b4477bbc118976c77fe1913507df718ec (diff)
downloadlinux-f8891461a277ec0afc493fd30cd975a38048a038.tar.xz
mac80211: do not start any work during reconfigure flow
It is not a good idea to try to perform any work (e.g. send an auth frame) during reconfigure flow. Prevent this from happening, and at the end of the reconfigure flow requeue all the works. Signed-off-by: Naftali Goldstein <naftali.goldstein@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/util.c')
-rw-r--r--net/mac80211/util.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index 1c8384f81526..e2edc2a3cc8b 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -2480,6 +2480,10 @@ int ieee80211_reconfig(struct ieee80211_local *local)
mutex_lock(&local->mtx);
ieee80211_start_next_roc(local);
mutex_unlock(&local->mtx);
+
+ /* Requeue all works */
+ list_for_each_entry(sdata, &local->interfaces, list)
+ ieee80211_queue_work(&local->hw, &sdata->work);
}
ieee80211_wake_queues_by_reason(hw, IEEE80211_MAX_QUEUE_MAP,