diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-03-31 12:12:05 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-04-22 16:54:39 -0400 |
commit | 18a8365992a8041aa178ae9ad5f0d951d0457230 (patch) | |
tree | cb7a461139269feb191e5f5d03c4438cfa9335f2 /net/mac80211 | |
parent | 75c2148fa5330c6de741fc96e3308f57d846a6b4 (diff) | |
download | kernel_samsung_aries-18a8365992a8041aa178ae9ad5f0d951d0457230.zip kernel_samsung_aries-18a8365992a8041aa178ae9ad5f0d951d0457230.tar.gz kernel_samsung_aries-18a8365992a8041aa178ae9ad5f0d951d0457230.tar.bz2 |
cfg80211: introduce scan IE limit attribute
This patch introduces a new attribute for a wiphy that tells
userspace how long the information elements added to a probe
request frame can be at most. It also updates the at76 to
advertise that it cannot support that, and, for now until I
can fix that, iwlwifi too.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/main.c | 13 | ||||
-rw-r--r-- | net/mac80211/util.c | 2 |
2 files changed, 14 insertions, 1 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c index fbcbed6..ee58a78 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c @@ -728,7 +728,18 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len, return NULL; wiphy->privid = mac80211_wiphy_privid; - wiphy->max_scan_ssids = 4; + + if (!ops->hw_scan) { + /* For hw_scan, driver needs to set these up. */ + wiphy->max_scan_ssids = 4; + + /* we support a maximum of 32 rates in cfg80211 */ + wiphy->max_scan_ie_len = IEEE80211_MAX_DATA_LEN + - 2 - 32 /* SSID */ + - 4 - 32 /* (ext) supp rates */; + + } + /* Yes, putting cfg80211_bss into ieee80211_bss is a hack */ wiphy->bss_priv_size = sizeof(struct ieee80211_bss) - sizeof(struct cfg80211_bss); diff --git a/net/mac80211/util.c b/net/mac80211/util.c index fdf432f..05caf34 100644 --- a/net/mac80211/util.c +++ b/net/mac80211/util.c @@ -890,6 +890,8 @@ void ieee80211_send_probe_req(struct ieee80211_sub_if_data *sdata, u8 *dst, *pos = rate->bitrate / 5; } + /* if adding more here, adjust max_scan_ie_len */ + if (ie) memcpy(skb_put(skb, ie_len), ie, ie_len); |