diff options
Diffstat (limited to 'net/mac80211/scan.c')
-rw-r--r-- | net/mac80211/scan.c | 28 |
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 | ||