libertas: get the right # of scanned BSSes
authorDan Williams <dcbw@redhat.com>
Fri, 30 Jul 2010 06:11:30 +0000 (23:11 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 5 Aug 2010 20:03:40 +0000 (16:03 -0400)
Let's actually check the right field in the command response; and
if there aren't any reported BSSes, exit early with success.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/libertas/cfg.c

index 25f902760980c3348fe238d33a24331d1d31438f..b60f661150619e5ed98babc3175ee11925a4f5da 100644 (file)
@@ -465,7 +465,15 @@ static int lbs_ret_scan(struct lbs_private *priv, unsigned long dummy,
        lbs_deb_enter(LBS_DEB_CFG80211);
 
        bsssize = get_unaligned_le16(&scanresp->bssdescriptsize);
-       nr_sets = le16_to_cpu(resp->size);
+       nr_sets = le16_to_cpu(scanresp->nr_sets);
+
+       lbs_deb_scan("scan response: %d BSSs (%d bytes); resp size %d bytes\n",
+                       nr_sets, bsssize, le16_to_cpu(resp->size));
+
+       if (nr_sets == 0) {
+               ret = 0;
+               goto done;
+       }
 
        /*
         * The general layout of the scan response is described in chapter