wlcore: check ssid length against the correct element
authorEliad Peller <eliad@wizery.com>
Tue, 3 Jul 2012 12:51:20 +0000 (15:51 +0300)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 10 Jul 2012 16:10:15 +0000 (12:10 -0400)
commit 587cc28 ("wlcore: compare ssid_len before comparing
ssids") introduced a new bug - the ssid length from the
request struct was compared against the ssid length of
another request, instead the one of the cmd.

This might cause the sched scan request to fail
(with -EINVAL) in many cases.

Signed-off-by: Eliad Peller <eliad@wizery.com>
drivers/net/wireless/ti/wlcore/scan.c

index b03eb9a..dbeca1b 100644 (file)
@@ -633,7 +633,7 @@ wl12xx_scan_sched_scan_ssid_list(struct wl1271 *wl,
 
                                for (j = 0; j < cmd->n_ssids; j++)
                                        if ((req->ssids[i].ssid_len ==
-                                            req->ssids[j].ssid_len) &&
+                                            cmd->ssids[j].len) &&
                                            !memcmp(req->ssids[i].ssid,
                                                   cmd->ssids[j].ssid,
                                                   req->ssids[i].ssid_len)) {