diff options
Diffstat (limited to 'net/mac80211/scan.c')
-rw-r--r-- | net/mac80211/scan.c | 23 |
1 files changed, 4 insertions, 19 deletions
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c index 569a464f60d8..5f4f7869d050 100644 --- a/net/mac80211/scan.c +++ b/net/mac80211/scan.c | |||
@@ -121,19 +121,6 @@ ieee80211_bss_info_update(struct ieee80211_local *local, | |||
121 | return bss; | 121 | return bss; |
122 | } | 122 | } |
123 | 123 | ||
124 | void ieee80211_rx_bss_remove(struct ieee80211_sub_if_data *sdata, u8 *bssid, | ||
125 | int freq, u8 *ssid, u8 ssid_len) | ||
126 | { | ||
127 | struct ieee80211_bss *bss; | ||
128 | struct ieee80211_local *local = sdata->local; | ||
129 | |||
130 | bss = ieee80211_rx_bss_get(local, bssid, freq, ssid, ssid_len); | ||
131 | if (bss) { | ||
132 | cfg80211_unlink_bss(local->hw.wiphy, (void *)bss); | ||
133 | ieee80211_rx_bss_put(local, bss); | ||
134 | } | ||
135 | } | ||
136 | |||
137 | ieee80211_rx_result | 124 | ieee80211_rx_result |
138 | ieee80211_scan_rx(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb) | 125 | ieee80211_scan_rx(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb) |
139 | { | 126 | { |
@@ -327,7 +314,7 @@ void ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted) | |||
327 | 314 | ||
328 | /* Tell AP we're back */ | 315 | /* Tell AP we're back */ |
329 | if (sdata->vif.type == NL80211_IFTYPE_STATION) { | 316 | if (sdata->vif.type == NL80211_IFTYPE_STATION) { |
330 | if (sdata->u.mgd.flags & IEEE80211_STA_ASSOCIATED) { | 317 | if (sdata->u.mgd.associated) { |
331 | ieee80211_scan_ps_disable(sdata); | 318 | ieee80211_scan_ps_disable(sdata); |
332 | netif_tx_wake_all_queues(sdata->dev); | 319 | netif_tx_wake_all_queues(sdata->dev); |
333 | } | 320 | } |
@@ -383,7 +370,7 @@ static int ieee80211_start_sw_scan(struct ieee80211_local *local) | |||
383 | sdata, BSS_CHANGED_BEACON_ENABLED); | 370 | sdata, BSS_CHANGED_BEACON_ENABLED); |
384 | 371 | ||
385 | if (sdata->vif.type == NL80211_IFTYPE_STATION) { | 372 | if (sdata->vif.type == NL80211_IFTYPE_STATION) { |
386 | if (sdata->u.mgd.flags & IEEE80211_STA_ASSOCIATED) { | 373 | if (sdata->u.mgd.associated) { |
387 | netif_tx_stop_all_queues(sdata->dev); | 374 | netif_tx_stop_all_queues(sdata->dev); |
388 | ieee80211_scan_ps_enable(sdata); | 375 | ieee80211_scan_ps_enable(sdata); |
389 | } | 376 | } |
@@ -443,10 +430,8 @@ static int __ieee80211_start_scan(struct ieee80211_sub_if_data *sdata, | |||
443 | 430 | ||
444 | if (req != &local->int_scan_req && | 431 | if (req != &local->int_scan_req && |
445 | sdata->vif.type == NL80211_IFTYPE_STATION && | 432 | sdata->vif.type == NL80211_IFTYPE_STATION && |
446 | (ifmgd->state == IEEE80211_STA_MLME_DIRECT_PROBE || | 433 | !list_empty(&ifmgd->work_list)) { |
447 | ifmgd->state == IEEE80211_STA_MLME_AUTHENTICATE || | 434 | /* actually wait for the work it's doing to finish/time out */ |
448 | ifmgd->state == IEEE80211_STA_MLME_ASSOCIATE)) { | ||
449 | /* actually wait for the assoc to finish/time out */ | ||
450 | set_bit(IEEE80211_STA_REQ_SCAN, &ifmgd->request); | 435 | set_bit(IEEE80211_STA_REQ_SCAN, &ifmgd->request); |
451 | return 0; | 436 | return 0; |
452 | } | 437 | } |