diff options
author | Karl Beldan <karl.beldan@rivierawaves.com> | 2014-10-07 13:42:18 +0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2014-10-10 19:11:13 +0400 |
commit | 2a84ee8625953fbce38b541aed77344044688a3e (patch) | |
tree | 47201745f406e428bf98acfb14482812e03d0372 /net/wireless/sme.c | |
parent | 486cf4c08fe8b2b049bfccb76ce445ec1088fa25 (diff) | |
download | linux-2a84ee8625953fbce38b541aed77344044688a3e.tar.xz |
cfg80211: set the rates mask in connection probes over specified freq
ATM, specifying the frequency when connecting sends a void 'supported
rates' EID.
Signed-off-by: Karl Beldan <karl.beldan@rivierawaves.com>
[fix memory leak in error path]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless/sme.c')
-rw-r--r-- | net/wireless/sme.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/net/wireless/sme.c b/net/wireless/sme.c index dc1668ff543b..0ab3711c79a0 100644 --- a/net/wireless/sme.c +++ b/net/wireless/sme.c @@ -80,9 +80,18 @@ static int cfg80211_conn_scan(struct wireless_dev *wdev) if (!request) return -ENOMEM; - if (wdev->conn->params.channel) + if (wdev->conn->params.channel) { + enum ieee80211_band band = wdev->conn->params.channel->band; + struct ieee80211_supported_band *sband = + wdev->wiphy->bands[band]; + + if (!sband) { + kfree(request); + return -EINVAL; + } request->channels[0] = wdev->conn->params.channel; - else { + request->rates[band] = (1 << sband->n_bitrates) - 1; + } else { int i = 0, j; enum ieee80211_band band; struct ieee80211_supported_band *bands; |