summaryrefslogtreecommitdiffstats
path: root/net/mac80211/scan.c
diff options
context:
space:
mode:
authorHelmut Schaa <helmut.schaa@googlemail.com>2009-07-25 17:25:51 +0200
committerJohn W. Linville <linville@tuxdriver.com>2009-07-29 21:46:07 +0200
commit0ee9c13c7c92581ab005d80795cf65897213b249 (patch)
tree835e48c69fc06f0f02f37635bce4267720224b5f /net/mac80211/scan.c
parentnl80211: add missing parameter clearing (diff)
downloadlinux-0ee9c13c7c92581ab005d80795cf65897213b249.tar.xz
linux-0ee9c13c7c92581ab005d80795cf65897213b249.zip
mac80211: fix an oops in ieee80211_scan_state_set_channel
Fix an oops in ieee80211_scan_state_set_channel which was triggered if the last scanned channel was skipped (for example due to regulatory restrictions) by returning to the decision state after each skipped channel. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/scan.c')
-rw-r--r--net/mac80211/scan.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
index b376775e722f..147772a2977c 100644
--- a/net/mac80211/scan.c
+++ b/net/mac80211/scan.c
@@ -605,8 +605,11 @@ static void ieee80211_scan_state_set_channel(struct ieee80211_local *local,
/* advance state machine to next channel/band */
local->scan_channel_idx++;
- if (skip)
+ if (skip) {
+ /* if we skip this channel return to the decision state */
+ local->next_scan_state = SCAN_DECISION;
return;
+ }
/*
* Probe delay is used to update the NAV, cf. 11.1.3.2.2