diff options
author | Johannes Berg <johannes.berg@intel.com> | 2012-07-23 08:53:27 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2012-07-31 10:18:56 -0400 |
commit | 6b77863b719a4e32909c218c0d5a83a14f4d98c5 (patch) | |
tree | d259001a7b7c4963de72cd6b3b9bf8d350d2f1c8 /net/mac80211/ieee80211_i.h | |
parent | 679ef4eadde1f8e55074427c0d8de2da55ca81f9 (diff) |
mac80211: fix current vs. operating channel in preq/beacon
When sending probe requests, e.g. during software scanning,
these will go out on the *current* channel, so their IEs
need to be built from the current channel. At other times,
e.g. for beacons or probe request templates, the IEs will
be used on the *operating* channel and using the current
channel instead might result in errors.
Add the appropriate parameters to respect the difference.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r-- | net/mac80211/ieee80211_i.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 8e65ad9c870a..0aaad023cdbe 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -1459,6 +1459,7 @@ int ieee80211_build_preq_ies(struct ieee80211_local *local, u8 *buffer, | |||
1459 | u8 channel); | 1459 | u8 channel); |
1460 | struct sk_buff *ieee80211_build_probe_req(struct ieee80211_sub_if_data *sdata, | 1460 | struct sk_buff *ieee80211_build_probe_req(struct ieee80211_sub_if_data *sdata, |
1461 | u8 *dst, u32 ratemask, | 1461 | u8 *dst, u32 ratemask, |
1462 | struct ieee80211_channel *chan, | ||
1462 | const u8 *ssid, size_t ssid_len, | 1463 | const u8 *ssid, size_t ssid_len, |
1463 | const u8 *ie, size_t ie_len, | 1464 | const u8 *ie, size_t ie_len, |
1464 | bool directed); | 1465 | bool directed); |
@@ -1489,9 +1490,11 @@ u8 *ieee80211_ie_build_ht_oper(u8 *pos, struct ieee80211_sta_ht_cap *ht_cap, | |||
1489 | u8 *ieee80211_ie_build_vht_cap(u8 *pos, struct ieee80211_sta_vht_cap *vht_cap, | 1490 | u8 *ieee80211_ie_build_vht_cap(u8 *pos, struct ieee80211_sta_vht_cap *vht_cap, |
1490 | u32 cap); | 1491 | u32 cap); |
1491 | int ieee80211_add_srates_ie(struct ieee80211_sub_if_data *sdata, | 1492 | int ieee80211_add_srates_ie(struct ieee80211_sub_if_data *sdata, |
1492 | struct sk_buff *skb, bool need_basic); | 1493 | struct sk_buff *skb, bool need_basic, |
1494 | enum ieee80211_band band); | ||
1493 | int ieee80211_add_ext_srates_ie(struct ieee80211_sub_if_data *sdata, | 1495 | int ieee80211_add_ext_srates_ie(struct ieee80211_sub_if_data *sdata, |
1494 | struct sk_buff *skb, bool need_basic); | 1496 | struct sk_buff *skb, bool need_basic, |
1497 | enum ieee80211_band band); | ||
1495 | 1498 | ||
1496 | /* channel management */ | 1499 | /* channel management */ |
1497 | enum ieee80211_chan_mode { | 1500 | enum ieee80211_chan_mode { |