diff options
author | Johannes Berg <johannes.berg@intel.com> | 2011-07-18 12:08:36 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-07-19 16:50:00 -0400 |
commit | 85a237fe308405ee38eb9c6733571c49902ec229 (patch) | |
tree | 8e8fdbd588a749b7eb7da24d65684a2ca6161c6b /net/mac80211/scan.c | |
parent | 34850ab25d74ab4eead62c3b4a9e8036a25cc669 (diff) |
mac80211: implement scan supported rates
Scanning currently uses the TX rate mask to
restrict the rate set, which is bogus. Make
it use the new set of rates from userspace.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/scan.c')
-rw-r--r-- | net/mac80211/scan.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c index 08a45ac3d6f8..6f09eca01112 100644 --- a/net/mac80211/scan.c +++ b/net/mac80211/scan.c | |||
@@ -228,7 +228,6 @@ ieee80211_scan_rx(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb) | |||
228 | static bool ieee80211_prep_hw_scan(struct ieee80211_local *local) | 228 | static bool ieee80211_prep_hw_scan(struct ieee80211_local *local) |
229 | { | 229 | { |
230 | struct cfg80211_scan_request *req = local->scan_req; | 230 | struct cfg80211_scan_request *req = local->scan_req; |
231 | struct ieee80211_sub_if_data *sdata = local->scan_sdata; | ||
232 | enum ieee80211_band band; | 231 | enum ieee80211_band band; |
233 | int i, ielen, n_chans; | 232 | int i, ielen, n_chans; |
234 | 233 | ||
@@ -253,7 +252,7 @@ static bool ieee80211_prep_hw_scan(struct ieee80211_local *local) | |||
253 | 252 | ||
254 | ielen = ieee80211_build_preq_ies(local, (u8 *)local->hw_scan_req->ie, | 253 | ielen = ieee80211_build_preq_ies(local, (u8 *)local->hw_scan_req->ie, |
255 | req->ie, req->ie_len, band, | 254 | req->ie, req->ie_len, band, |
256 | sdata->rc_rateidx_mask[band], 0); | 255 | req->rates[band], 0); |
257 | local->hw_scan_req->ie_len = ielen; | 256 | local->hw_scan_req->ie_len = ielen; |
258 | 257 | ||
259 | return true; | 258 | return true; |
@@ -653,6 +652,7 @@ static void ieee80211_scan_state_send_probe(struct ieee80211_local *local, | |||
653 | { | 652 | { |
654 | int i; | 653 | int i; |
655 | struct ieee80211_sub_if_data *sdata = local->scan_sdata; | 654 | struct ieee80211_sub_if_data *sdata = local->scan_sdata; |
655 | enum ieee80211_band band = local->hw.conf.channel->band; | ||
656 | 656 | ||
657 | for (i = 0; i < local->scan_req->n_ssids; i++) | 657 | for (i = 0; i < local->scan_req->n_ssids; i++) |
658 | ieee80211_send_probe_req( | 658 | ieee80211_send_probe_req( |
@@ -660,7 +660,7 @@ static void ieee80211_scan_state_send_probe(struct ieee80211_local *local, | |||
660 | local->scan_req->ssids[i].ssid, | 660 | local->scan_req->ssids[i].ssid, |
661 | local->scan_req->ssids[i].ssid_len, | 661 | local->scan_req->ssids[i].ssid_len, |
662 | local->scan_req->ie, local->scan_req->ie_len, | 662 | local->scan_req->ie, local->scan_req->ie_len, |
663 | false); | 663 | local->scan_req->rates[band], false); |
664 | 664 | ||
665 | /* | 665 | /* |
666 | * After sending probe requests, wait for probe responses | 666 | * After sending probe requests, wait for probe responses |