aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/ieee80211_sta.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/ieee80211_sta.c')
-rw-r--r--net/mac80211/ieee80211_sta.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/net/mac80211/ieee80211_sta.c b/net/mac80211/ieee80211_sta.c
index 3f0a2faf37d4..17455c6a5229 100644
--- a/net/mac80211/ieee80211_sta.c
+++ b/net/mac80211/ieee80211_sta.c
@@ -2662,10 +2662,16 @@ void ieee80211_scan_completed(struct ieee80211_hw *hw)
2662 printk(KERN_DEBUG "%s: failed to restore operational" 2662 printk(KERN_DEBUG "%s: failed to restore operational"
2663 "channel after scan\n", dev->name); 2663 "channel after scan\n", dev->name);
2664 2664
2665 if (!(local->hw.flags & IEEE80211_HW_NO_PROBE_FILTERING) && 2665
2666 ieee80211_if_config(dev)) 2666 netif_tx_lock_bh(local->mdev);
2667 printk(KERN_DEBUG "%s: failed to restore operational" 2667 local->filter_flags &= ~FIF_BCN_PRBRESP_PROMISC;
2668 "BSSID after scan\n", dev->name); 2668 local->ops->configure_filter(local_to_hw(local),
2669 FIF_BCN_PRBRESP_PROMISC,
2670 &local->filter_flags,
2671 local->mdev->mc_count,
2672 local->mdev->mc_list);
2673
2674 netif_tx_unlock_bh(local->mdev);
2669 2675
2670 memset(&wrqu, 0, sizeof(wrqu)); 2676 memset(&wrqu, 0, sizeof(wrqu));
2671 wireless_send_event(dev, SIOCGIWSCAN, &wrqu, NULL); 2677 wireless_send_event(dev, SIOCGIWSCAN, &wrqu, NULL);
@@ -2849,10 +2855,14 @@ static int ieee80211_sta_start_scan(struct net_device *dev,
2849 local->scan_channel_idx = 0; 2855 local->scan_channel_idx = 0;
2850 local->scan_dev = dev; 2856 local->scan_dev = dev;
2851 2857
2852 if (!(local->hw.flags & IEEE80211_HW_NO_PROBE_FILTERING) && 2858 netif_tx_lock_bh(local->mdev);
2853 ieee80211_if_config(dev)) 2859 local->filter_flags |= FIF_BCN_PRBRESP_PROMISC;
2854 printk(KERN_DEBUG "%s: failed to set BSSID for scan\n", 2860 local->ops->configure_filter(local_to_hw(local),
2855 dev->name); 2861 FIF_BCN_PRBRESP_PROMISC,
2862 &local->filter_flags,
2863 local->mdev->mc_count,
2864 local->mdev->mc_list);
2865 netif_tx_unlock_bh(local->mdev);
2856 2866
2857 /* TODO: start scan as soon as all nullfunc frames are ACKed */ 2867 /* TODO: start scan as soon as all nullfunc frames are ACKed */
2858 queue_delayed_work(local->hw.workqueue, &local->scan_work, 2868 queue_delayed_work(local->hw.workqueue, &local->scan_work,