aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless/sme.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/wireless/sme.c')
-rw-r--r--net/wireless/sme.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/net/wireless/sme.c b/net/wireless/sme.c
index d3c5bd7c6b51..f04d4c32e96e 100644
--- a/net/wireless/sme.c
+++ b/net/wireless/sme.c
@@ -67,21 +67,14 @@ static int cfg80211_conn_scan(struct wireless_dev *wdev)
67 ASSERT_RDEV_LOCK(rdev); 67 ASSERT_RDEV_LOCK(rdev);
68 ASSERT_WDEV_LOCK(wdev); 68 ASSERT_WDEV_LOCK(wdev);
69 69
70 if (rdev->scan_req) 70 if (rdev->scan_req || rdev->scan_msg)
71 return -EBUSY; 71 return -EBUSY;
72 72
73 if (wdev->conn->params.channel) { 73 if (wdev->conn->params.channel)
74 n_channels = 1; 74 n_channels = 1;
75 } else { 75 else
76 enum ieee80211_band band; 76 n_channels = ieee80211_get_num_supported_channels(wdev->wiphy);
77 n_channels = 0;
78 77
79 for (band = 0; band < IEEE80211_NUM_BANDS; band++) {
80 if (!wdev->wiphy->bands[band])
81 continue;
82 n_channels += wdev->wiphy->bands[band]->n_channels;
83 }
84 }
85 request = kzalloc(sizeof(*request) + sizeof(request->ssids[0]) + 78 request = kzalloc(sizeof(*request) + sizeof(request->ssids[0]) +
86 sizeof(request->channels[0]) * n_channels, 79 sizeof(request->channels[0]) * n_channels,
87 GFP_KERNEL); 80 GFP_KERNEL);
@@ -872,6 +865,8 @@ void __cfg80211_disconnected(struct net_device *dev, const u8 *ie,
872 for (i = 0; i < 6; i++) 865 for (i = 0; i < 6; i++)
873 rdev_del_key(rdev, dev, i, false, NULL); 866 rdev_del_key(rdev, dev, i, false, NULL);
874 867
868 rdev_set_qos_map(rdev, dev, NULL);
869
875#ifdef CONFIG_CFG80211_WEXT 870#ifdef CONFIG_CFG80211_WEXT
876 memset(&wrqu, 0, sizeof(wrqu)); 871 memset(&wrqu, 0, sizeof(wrqu));
877 wrqu.ap_addr.sa_family = ARPHRD_ETHER; 872 wrqu.ap_addr.sa_family = ARPHRD_ETHER;