aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/ieee80211_ioctl.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/ieee80211_ioctl.c')
-rw-r--r--net/mac80211/ieee80211_ioctl.c31
1 files changed, 5 insertions, 26 deletions
diff --git a/net/mac80211/ieee80211_ioctl.c b/net/mac80211/ieee80211_ioctl.c
index 1d91575a0fe9..5af23d318726 100644
--- a/net/mac80211/ieee80211_ioctl.c
+++ b/net/mac80211/ieee80211_ioctl.c
@@ -279,36 +279,15 @@ static int ieee80211_ioctl_giwmode(struct net_device *dev,
279 279
280int ieee80211_set_freq(struct ieee80211_local *local, int freqMHz) 280int ieee80211_set_freq(struct ieee80211_local *local, int freqMHz)
281{ 281{
282 int set = 0;
283 int ret = -EINVAL; 282 int ret = -EINVAL;
284 enum ieee80211_band band; 283 struct ieee80211_channel *chan;
285 struct ieee80211_supported_band *sband;
286 int i;
287
288 for (band = 0; band < IEEE80211_NUM_BANDS; band ++) {
289 sband = local->hw.wiphy->bands[band];
290 284
291 if (!sband) 285 chan = ieee80211_get_channel(local->hw.wiphy, freqMHz);
292 continue;
293 286
294 for (i = 0; i < sband->n_channels; i++) { 287 if (chan && !(chan->flags & IEEE80211_CHAN_DISABLED)) {
295 struct ieee80211_channel *chan = &sband->channels[i]; 288 local->oper_channel = chan;
296
297 if (chan->flags & IEEE80211_CHAN_DISABLED)
298 continue;
299
300 if (chan->center_freq == freqMHz) {
301 set = 1;
302 local->oper_channel = chan;
303 break;
304 }
305 }
306 if (set)
307 break;
308 }
309 289
310 if (set) { 290 if (local->sta_sw_scanning || local->sta_hw_scanning)
311 if (local->sta_sw_scanning)
312 ret = 0; 291 ret = 0;
313 else 292 else
314 ret = ieee80211_hw_config(local); 293 ret = ieee80211_hw_config(local);