diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-06-17 11:43:56 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-07-24 15:05:30 -0400 |
commit | 3b8d81e020f77c9da8b85b0685c8cd2ca7c7b150 (patch) | |
tree | a19fcddbf28fecdbd13ad009fe07b8afc5e95c90 /net/mac80211/scan.c | |
parent | c4029083e2acb82229c43b791c07afb089d972ff (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.c | 19 |
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, |