aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/driver-ops.h
diff options
context:
space:
mode:
authorSara Sharon <sara.sharon@intel.com>2019-02-06 13:17:10 +0200
committerJohannes Berg <johannes.berg@intel.com>2019-02-22 13:43:53 +0100
commitb9cc81d827ed13502ca9c8523361be26ca1d7220 (patch)
tree557b5204ff9b7cfea170afa9379fbdb1ecb4230b /net/mac80211/driver-ops.h
parentmac80211: support max channel switch time element (diff)
downloadlinux-dev-b9cc81d827ed13502ca9c8523361be26ca1d7220.tar.xz
linux-dev-b9cc81d827ed13502ca9c8523361be26ca1d7220.zip
mac80211: abort CSA if beacon does not include CSA IEs
In case we receive a beacon without CSA IE while we are in the middle of channel switch - abort the operation. Signed-off-by: Sara Sharon <sara.sharon@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/driver-ops.h')
-rw-r--r--net/mac80211/driver-ops.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h
index ba3c07b10cd0..e069122595d0 100644
--- a/net/mac80211/driver-ops.h
+++ b/net/mac80211/driver-ops.h
@@ -1052,6 +1052,20 @@ drv_post_channel_switch(struct ieee80211_sub_if_data *sdata)
return ret;
}
+static inline void
+drv_abort_channel_switch(struct ieee80211_sub_if_data *sdata)
+{
+ struct ieee80211_local *local = sdata->local;
+
+ if (!check_sdata_in_driver(sdata))
+ return;
+
+ trace_drv_abort_channel_switch(local, sdata);
+
+ if (local->ops->abort_channel_switch)
+ local->ops->abort_channel_switch(&local->hw, &sdata->vif);
+}
+
static inline int drv_join_ibss(struct ieee80211_local *local,
struct ieee80211_sub_if_data *sdata)
{