diff options
author | Johannes Berg <johannes.berg@intel.com> | 2012-07-06 15:55:11 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2012-07-12 06:10:43 -0400 |
commit | 5260a5b2c3524f198ea062fe0a6a4faa724e6a9d (patch) | |
tree | 9524bf3dbcb65b6a0125e6a276e313527fd4d4d2 /net/mac80211/rx.c | |
parent | e2fd5dbc1c7031be5b5de043bcc0a18c7a59a68a (diff) |
mac80211: track scheduled scan virtual interface
Instead of tracking whether or not we're in a
scheduled scan, track the virtual interface
(sdata) in an RCU-protected pointer to make it
usable from RX to check the MAC address.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r-- | net/mac80211/rx.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index f8cf9e7477a3..17a56151be7f 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -421,13 +421,13 @@ ieee80211_rx_h_passive_scan(struct ieee80211_rx_data *rx) | |||
421 | struct sk_buff *skb = rx->skb; | 421 | struct sk_buff *skb = rx->skb; |
422 | 422 | ||
423 | if (likely(!(status->rx_flags & IEEE80211_RX_IN_SCAN) && | 423 | if (likely(!(status->rx_flags & IEEE80211_RX_IN_SCAN) && |
424 | !local->sched_scanning)) | 424 | !rcu_access_pointer(local->sched_scan_sdata))) |
425 | return RX_CONTINUE; | 425 | return RX_CONTINUE; |
426 | 426 | ||
427 | if (test_bit(SCAN_HW_SCANNING, &local->scanning) || | 427 | if (test_bit(SCAN_HW_SCANNING, &local->scanning) || |
428 | test_bit(SCAN_SW_SCANNING, &local->scanning) || | 428 | test_bit(SCAN_SW_SCANNING, &local->scanning) || |
429 | test_bit(SCAN_ONCHANNEL_SCANNING, &local->scanning) || | 429 | test_bit(SCAN_ONCHANNEL_SCANNING, &local->scanning) || |
430 | local->sched_scanning) | 430 | rcu_access_pointer(local->sched_scan_sdata)) |
431 | return ieee80211_scan_rx(rx->sdata, skb); | 431 | return ieee80211_scan_rx(rx->sdata, skb); |
432 | 432 | ||
433 | /* scanning finished during invoking of handlers */ | 433 | /* scanning finished during invoking of handlers */ |