diff options
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) | |||
80 | if (!request) | 80 | if (!request) |
81 | return -ENOMEM; | 81 | return -ENOMEM; |
82 | 82 | ||
83 | if (wdev->conn->params.channel) | 83 | if (wdev->conn->params.channel) { |
84 | enum ieee80211_band band = wdev->conn->params.channel->band; | ||
85 | struct ieee80211_supported_band *sband = | ||
86 | wdev->wiphy->bands[band]; | ||
87 | |||
88 | if (!sband) { | ||
89 | kfree(request); | ||
90 | return -EINVAL; | ||
91 | } | ||
84 | request->channels[0] = wdev->conn->params.channel; | 92 | request->channels[0] = wdev->conn->params.channel; |
85 | else { | 93 | request->rates[band] = (1 << sband->n_bitrates) - 1; |
94 | } else { | ||
86 | int i = 0, j; | 95 | int i = 0, j; |
87 | enum ieee80211_band band; | 96 | enum ieee80211_band band; |
88 | struct ieee80211_supported_band *bands; | 97 | struct ieee80211_supported_band *bands; |