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