diff options
author | Ben Greear <greearb@candelatech.com> | 2012-04-17 13:54:16 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-04-23 15:28:33 -0400 |
commit | 8a690674e0601efbe9a7b16a5826fc522645cca3 (patch) | |
tree | c22f122d36d33a2ac446a0626a0fa4213cb9190d /net/mac80211/main.c | |
parent | e828b9fb4f6c3513950759d5fb902db5bd054048 (diff) |
mac80211: Support on-channel scan option.
This based on an idea posted by Stanislaw Gruszka,
though I accept full blame for the implementation!
This has been tested with ath9k.
The idea is to let users scan on the current operating
channel without interrupting normal traffic more than
absolutely necessary (changing power level might reset
some hardware, for instance).
Signed-off-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/main.c')
-rw-r--r-- | net/mac80211/main.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c index ac79d5e8e0d0..b70f7f09da61 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c | |||
@@ -47,7 +47,8 @@ void ieee80211_configure_filter(struct ieee80211_local *local) | |||
47 | if (atomic_read(&local->iff_allmultis)) | 47 | if (atomic_read(&local->iff_allmultis)) |
48 | new_flags |= FIF_ALLMULTI; | 48 | new_flags |= FIF_ALLMULTI; |
49 | 49 | ||
50 | if (local->monitors || test_bit(SCAN_SW_SCANNING, &local->scanning)) | 50 | if (local->monitors || test_bit(SCAN_SW_SCANNING, &local->scanning) || |
51 | test_bit(SCAN_ONCHANNEL_SCANNING, &local->scanning)) | ||
51 | new_flags |= FIF_BCN_PRBRESP_PROMISC; | 52 | new_flags |= FIF_BCN_PRBRESP_PROMISC; |
52 | 53 | ||
53 | if (local->fif_probe_req || local->probe_req_reg) | 54 | if (local->fif_probe_req || local->probe_req_reg) |
@@ -148,6 +149,7 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed) | |||
148 | } | 149 | } |
149 | 150 | ||
150 | if (test_bit(SCAN_SW_SCANNING, &local->scanning) || | 151 | if (test_bit(SCAN_SW_SCANNING, &local->scanning) || |
152 | test_bit(SCAN_ONCHANNEL_SCANNING, &local->scanning) || | ||
151 | test_bit(SCAN_HW_SCANNING, &local->scanning)) | 153 | test_bit(SCAN_HW_SCANNING, &local->scanning)) |
152 | power = chan->max_power; | 154 | power = chan->max_power; |
153 | else | 155 | else |