wireless: Do not allow disabled channel in scan request
cfg80211_conn_scan allows disabled channels at scan request. Hence probe request was seen at the disabled one. This patch ensures that disabled channel never be added into the scan request's channel list. Acked-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Родитель
4d8b61490c
Коммит
e30815016b
|
@ -110,17 +110,22 @@ static int cfg80211_conn_scan(struct wireless_dev *wdev)
|
|||
else {
|
||||
int i = 0, j;
|
||||
enum ieee80211_band band;
|
||||
struct ieee80211_supported_band *bands;
|
||||
struct ieee80211_channel *channel;
|
||||
|
||||
for (band = 0; band < IEEE80211_NUM_BANDS; band++) {
|
||||
if (!wdev->wiphy->bands[band])
|
||||
bands = wdev->wiphy->bands[band];
|
||||
if (!bands)
|
||||
continue;
|
||||
for (j = 0; j < wdev->wiphy->bands[band]->n_channels;
|
||||
i++, j++)
|
||||
request->channels[i] =
|
||||
&wdev->wiphy->bands[band]->channels[j];
|
||||
request->rates[band] =
|
||||
(1 << wdev->wiphy->bands[band]->n_bitrates) - 1;
|
||||
for (j = 0; j < bands->n_channels; j++) {
|
||||
channel = &bands->channels[j];
|
||||
if (channel->flags & IEEE80211_CHAN_DISABLED)
|
||||
continue;
|
||||
request->channels[i++] = channel;
|
||||
}
|
||||
request->rates[band] = (1 << bands->n_bitrates) - 1;
|
||||
}
|
||||
n_channels = i;
|
||||
}
|
||||
request->n_channels = n_channels;
|
||||
request->ssids = (void *)&request->channels[n_channels];
|
||||
|
|
Загрузка…
Ссылка в новой задаче