summaryrefslogtreecommitdiffstats
path: root/net/mac80211/rx.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2012-07-06 21:55:11 +0200
committerJohannes Berg <johannes.berg@intel.com>2012-07-12 12:10:43 +0200
commit5260a5b2c3524f198ea062fe0a6a4faa724e6a9d (patch)
tree9524bf3dbcb65b6a0125e6a276e313527fd4d4d2 /net/mac80211/rx.c
parente2fd5dbc1c7031be5b5de043bcc0a18c7a59a68a (diff)
downloadlinux-5260a5b2c3524f198ea062fe0a6a4faa724e6a9d.tar.bz2
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.c4
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)
struct sk_buff *skb = rx->skb;
if (likely(!(status->rx_flags & IEEE80211_RX_IN_SCAN) &&
- !local->sched_scanning))
+ !rcu_access_pointer(local->sched_scan_sdata)))
return RX_CONTINUE;
if (test_bit(SCAN_HW_SCANNING, &local->scanning) ||
test_bit(SCAN_SW_SCANNING, &local->scanning) ||
test_bit(SCAN_ONCHANNEL_SCANNING, &local->scanning) ||
- local->sched_scanning)
+ rcu_access_pointer(local->sched_scan_sdata))
return ieee80211_scan_rx(rx->sdata, skb);
/* scanning finished during invoking of handlers */