aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/scan.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-06-17 11:43:56 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-07-24 15:05:30 -0400
commit3b8d81e020f77c9da8b85b0685c8cd2ca7c7b150 (patch)
treea19fcddbf28fecdbd13ad009fe07b8afc5e95c90 /net/mac80211/scan.c
parentc4029083e2acb82229c43b791c07afb089d972ff (diff)
mac80211: remove master netdev
With the internal 'pending' queue system in place, we can simply put packets there instead of pushing them off to the master dev, getting rid of the master interface completely. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/scan.c')
-rw-r--r--net/mac80211/scan.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
index 5f4f7869d050..74820656dc89 100644
--- a/net/mac80211/scan.c
+++ b/net/mac80211/scan.c
@@ -294,16 +294,13 @@ void ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted)
294 if (was_hw_scan) 294 if (was_hw_scan)
295 goto done; 295 goto done;
296 296
297 netif_tx_lock_bh(local->mdev); 297 spin_lock_bh(&local->filter_lock);
298 netif_addr_lock(local->mdev);
299 local->filter_flags &= ~FIF_BCN_PRBRESP_PROMISC; 298 local->filter_flags &= ~FIF_BCN_PRBRESP_PROMISC;
300 drv_configure_filter(local, FIF_BCN_PRBRESP_PROMISC, 299 drv_configure_filter(local, FIF_BCN_PRBRESP_PROMISC,
301 &local->filter_flags, 300 &local->filter_flags,
302 local->mdev->mc_count, 301 local->mc_count,
303 local->mdev->mc_list); 302 local->mc_list);
304 303 spin_unlock_bh(&local->filter_lock);
305 netif_addr_unlock(local->mdev);
306 netif_tx_unlock_bh(local->mdev);
307 304
308 drv_sw_scan_complete(local); 305 drv_sw_scan_complete(local);
309 306
@@ -382,13 +379,13 @@ static int ieee80211_start_sw_scan(struct ieee80211_local *local)
382 local->scan_state = SCAN_SET_CHANNEL; 379 local->scan_state = SCAN_SET_CHANNEL;
383 local->scan_channel_idx = 0; 380 local->scan_channel_idx = 0;
384 381
385 netif_addr_lock_bh(local->mdev); 382 spin_lock_bh(&local->filter_lock);
386 local->filter_flags |= FIF_BCN_PRBRESP_PROMISC; 383 local->filter_flags |= FIF_BCN_PRBRESP_PROMISC;
387 drv_configure_filter(local, FIF_BCN_PRBRESP_PROMISC, 384 drv_configure_filter(local, FIF_BCN_PRBRESP_PROMISC,
388 &local->filter_flags, 385 &local->filter_flags,
389 local->mdev->mc_count, 386 local->mc_count,
390 local->mdev->mc_list); 387 local->mc_list);
391 netif_addr_unlock_bh(local->mdev); 388 spin_unlock_bh(&local->filter_lock);
392 389
393 /* TODO: start scan as soon as all nullfunc frames are ACKed */ 390 /* TODO: start scan as soon as all nullfunc frames are ACKed */
394 queue_delayed_work(local->hw.workqueue, &local->scan_work, 391 queue_delayed_work(local->hw.workqueue, &local->scan_work,