aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/scan.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/scan.c')
-rw-r--r--net/mac80211/scan.c28
1 files changed, 12 insertions, 16 deletions
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
index 04e270abdd22..127bd54e0e38 100644
--- a/net/mac80211/scan.c
+++ b/net/mac80211/scan.c
@@ -21,6 +21,7 @@
21#include <net/iw_handler.h> 21#include <net/iw_handler.h>
22 22
23#include "ieee80211_i.h" 23#include "ieee80211_i.h"
24#include "driver-ops.h"
24#include "mesh.h" 25#include "mesh.h"
25 26
26#define IEEE80211_PROBE_DELAY (HZ / 33) 27#define IEEE80211_PROBE_DELAY (HZ / 33)
@@ -316,17 +317,15 @@ void ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted)
316 netif_tx_lock_bh(local->mdev); 317 netif_tx_lock_bh(local->mdev);
317 netif_addr_lock(local->mdev); 318 netif_addr_lock(local->mdev);
318 local->filter_flags &= ~FIF_BCN_PRBRESP_PROMISC; 319 local->filter_flags &= ~FIF_BCN_PRBRESP_PROMISC;
319 local->ops->configure_filter(local_to_hw(local), 320 drv_configure_filter(local, FIF_BCN_PRBRESP_PROMISC,
320 FIF_BCN_PRBRESP_PROMISC, 321 &local->filter_flags,
321 &local->filter_flags, 322 local->mdev->mc_count,
322 local->mdev->mc_count, 323 local->mdev->mc_list);
323 local->mdev->mc_list);
324 324
325 netif_addr_unlock(local->mdev); 325 netif_addr_unlock(local->mdev);
326 netif_tx_unlock_bh(local->mdev); 326 netif_tx_unlock_bh(local->mdev);
327 327
328 if (local->ops->sw_scan_complete) 328 drv_sw_scan_complete(local);
329 local->ops->sw_scan_complete(local_to_hw(local));
330 329
331 mutex_lock(&local->iflist_mtx); 330 mutex_lock(&local->iflist_mtx);
332 list_for_each_entry(sdata, &local->interfaces, list) { 331 list_for_each_entry(sdata, &local->interfaces, list) {
@@ -375,8 +374,7 @@ static int ieee80211_start_sw_scan(struct ieee80211_local *local)
375 * nullfunc frames and probe requests will be dropped in 374 * nullfunc frames and probe requests will be dropped in
376 * ieee80211_tx_h_check_assoc(). 375 * ieee80211_tx_h_check_assoc().
377 */ 376 */
378 if (local->ops->sw_scan_start) 377 drv_sw_scan_start(local);
379 local->ops->sw_scan_start(local_to_hw(local));
380 378
381 mutex_lock(&local->iflist_mtx); 379 mutex_lock(&local->iflist_mtx);
382 list_for_each_entry(sdata, &local->interfaces, list) { 380 list_for_each_entry(sdata, &local->interfaces, list) {
@@ -405,11 +403,10 @@ static int ieee80211_start_sw_scan(struct ieee80211_local *local)
405 403
406 netif_addr_lock_bh(local->mdev); 404 netif_addr_lock_bh(local->mdev);
407 local->filter_flags |= FIF_BCN_PRBRESP_PROMISC; 405 local->filter_flags |= FIF_BCN_PRBRESP_PROMISC;
408 local->ops->configure_filter(local_to_hw(local), 406 drv_configure_filter(local, FIF_BCN_PRBRESP_PROMISC,
409 FIF_BCN_PRBRESP_PROMISC, 407 &local->filter_flags,
410 &local->filter_flags, 408 local->mdev->mc_count,
411 local->mdev->mc_count, 409 local->mdev->mc_list);
412 local->mdev->mc_list);
413 netif_addr_unlock_bh(local->mdev); 410 netif_addr_unlock_bh(local->mdev);
414 411
415 /* TODO: start scan as soon as all nullfunc frames are ACKed */ 412 /* TODO: start scan as soon as all nullfunc frames are ACKed */
@@ -477,8 +474,7 @@ static int __ieee80211_start_scan(struct ieee80211_sub_if_data *sdata,
477 mutex_unlock(&local->scan_mtx); 474 mutex_unlock(&local->scan_mtx);
478 475
479 if (local->ops->hw_scan) 476 if (local->ops->hw_scan)
480 rc = local->ops->hw_scan(local_to_hw(local), 477 rc = drv_hw_scan(local, local->scan_req);
481 local->scan_req);
482 else 478 else
483 rc = ieee80211_start_sw_scan(local); 479 rc = ieee80211_start_sw_scan(local);
484 480