2009-07-25 15:25:45

by Helmut Schaa

[permalink] [raw]
Subject: [PATCH] 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 <[email protected]>
---
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
index b376775..147772a 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


2009-07-25 16:17:19

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH] mac80211: fix an oops in ieee80211_scan_state_set_channel

Helmut Schaa wrote:
> 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 <[email protected]>
> ---

Better late than never, but this patch does fix the problem for me.

Larry