cfg80211: always get BSS
authorJohannes Berg <johannes@sipsolutions.net>
Sat, 26 Sep 2009 12:42:53 +0000 (14:42 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 28 Sep 2009 20:55:05 +0000 (16:55 -0400)
Multiple problems were reported due to interaction
between wpa_supplicant and the wext compat code in
cfg80211, which appear to be due to it not getting
any bss pointer here when wpa_supplicant sets all
parameters -- do that now. We should still get the
bss after doing an extra scan, but that appears to
increase the time we need for connecting enough to
sometimes cause timeouts.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Tested-by: Hin-Tak Leung <hintak.leung@gmail.com>,
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/wireless/sme.c

index 7fae7eee65def0b24d17aa1046c37a496bcf04b6..93c3ed329204f034c18a1ec08b9d54bb75364abe 100644 (file)
@@ -762,9 +762,8 @@ int __cfg80211_connect(struct cfg80211_registered_device *rdev,
                wdev->conn->params.ssid = wdev->ssid;
                wdev->conn->params.ssid_len = connect->ssid_len;
 
                wdev->conn->params.ssid = wdev->ssid;
                wdev->conn->params.ssid_len = connect->ssid_len;
 
-               /* don't care about result -- but fill bssid & channel */
-               if (!wdev->conn->params.bssid || !wdev->conn->params.channel)
-                       bss = cfg80211_get_conn_bss(wdev);
+               /* see if we have the bss already */
+               bss = cfg80211_get_conn_bss(wdev);
 
                wdev->sme_state = CFG80211_SME_CONNECTING;
                wdev->connect_keys = connkeys;
 
                wdev->sme_state = CFG80211_SME_CONNECTING;
                wdev->connect_keys = connkeys;