summaryrefslogtreecommitdiffstats
path: root/net/mac80211/mlme.c
diff options
context:
space:
mode:
authorLuciano Coelho2014-10-08 08:48:38 +0200
committerJohannes Berg2014-10-09 11:30:09 +0200
commitf1d65583bc5bd43ace8abb9d4f4d9e8da407f708 (patch)
tree7c51dcf4057ab096c49700567162ceeb7458e226 /net/mac80211/mlme.c
parentmac80211: add pre_channel_switch driver operation (diff)
downloadkernel-qcow2-linux-f1d65583bc5bd43ace8abb9d4f4d9e8da407f708.tar.gz
kernel-qcow2-linux-f1d65583bc5bd43ace8abb9d4f4d9e8da407f708.tar.xz
kernel-qcow2-linux-f1d65583bc5bd43ace8abb9d4f4d9e8da407f708.zip
mac80211: add post_channel_switch driver operation
As a counterpart to the pre_channel_switch operation, add a post_channel_switch operation. This allows the drivers to go back to a normal configuration after the channel switch is completed. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r--net/mac80211/mlme.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index d23d6d97e453..cb1a8c3bc73f 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1010,6 +1010,15 @@ static void ieee80211_chswitch_work(struct work_struct *work)
sdata->csa_block_tx = false;
}
+ ret = drv_post_channel_switch(sdata);
+ if (ret) {
+ sdata_info(sdata,
+ "driver post channel switch failed, disconnecting\n");
+ ieee80211_queue_work(&local->hw,
+ &ifmgd->csa_connection_drop_work);
+ goto out;
+ }
+
ieee80211_sta_reset_beacon_monitor(sdata);
ieee80211_sta_reset_conn_monitor(sdata);