Browse Source

iwlwifi: invert the order of ssid list in scan cmd

The firmware inverts the order of ssid list of scan command, we
should invert the order before sending the command, in order to
get probe requests sent in wanted order.

Signed-off-by: David Spinadel <david.spinadel@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
David Spinadel 13 years ago
parent
commit
65781af6b5
1 changed files with 5 additions and 1 deletions
  1. 5 1
      drivers/net/wireless/iwlwifi/iwl-scan.c

+ 5 - 1
drivers/net/wireless/iwlwifi/iwl-scan.c

@@ -767,7 +767,11 @@ static int iwlagn_request_scan(struct iwl_priv *priv, struct ieee80211_vif *vif)
 			ssid_len = priv->scan_request->ssids[0].ssid_len;
 			ssid_len = priv->scan_request->ssids[0].ssid_len;
 			ssid = priv->scan_request->ssids[0].ssid;
 			ssid = priv->scan_request->ssids[0].ssid;
 
 
-			for (i = 1; i < priv->scan_request->n_ssids; i++) {
+			/*
+			 * Invert the order of ssids, the firmware will invert
+			 * it back.
+			 */
+			for (i = priv->scan_request->n_ssids - 1; i >= 1; i--) {
 				scan->direct_scan[p].id = WLAN_EID_SSID;
 				scan->direct_scan[p].id = WLAN_EID_SSID;
 				scan->direct_scan[p].len =
 				scan->direct_scan[p].len =
 					priv->scan_request->ssids[i].ssid_len;
 					priv->scan_request->ssids[i].ssid_len;