|
@@ -22,7 +22,7 @@
|
|
|
#include "wme.h"
|
|
|
|
|
|
int ieee80211_parse_ch_switch_ie(struct ieee80211_sub_if_data *sdata,
|
|
|
- struct ieee802_11_elems *elems, bool beacon,
|
|
|
+ struct ieee802_11_elems *elems,
|
|
|
enum ieee80211_band current_band,
|
|
|
u32 sta_flags, u8 *bssid,
|
|
|
struct ieee80211_csa_ie *csa_ie)
|
|
@@ -91,19 +91,13 @@ int ieee80211_parse_ch_switch_ie(struct ieee80211_sub_if_data *sdata,
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
- if (!beacon && sec_chan_offs) {
|
|
|
+ if (sec_chan_offs) {
|
|
|
secondary_channel_offset = sec_chan_offs->sec_chan_offs;
|
|
|
- } else if (beacon && ht_oper) {
|
|
|
- secondary_channel_offset =
|
|
|
- ht_oper->ht_param & IEEE80211_HT_PARAM_CHA_SEC_OFFSET;
|
|
|
} else if (!(sta_flags & IEEE80211_STA_DISABLE_HT)) {
|
|
|
- /* If it's not a beacon, HT is enabled and the IE not present,
|
|
|
- * it's 20 MHz, 802.11-2012 8.5.2.6:
|
|
|
- * This element [the Secondary Channel Offset Element] is
|
|
|
- * present when switching to a 40 MHz channel. It may be
|
|
|
- * present when switching to a 20 MHz channel (in which
|
|
|
- * case the secondary channel offset is set to SCN).
|
|
|
- */
|
|
|
+ /* If the secondary channel offset IE is not present,
|
|
|
+ * we can't know what's the post-CSA offset, so the
|
|
|
+ * best we can do is use 20MHz.
|
|
|
+ */
|
|
|
secondary_channel_offset = IEEE80211_HT_PARAM_CHA_SEC_NONE;
|
|
|
}
|
|
|
|