aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl4965-base.c
diff options
context:
space:
mode:
authorReinette Chatre <reinette.chatre@intel.com>2008-03-11 19:17:15 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-03-13 19:32:33 -0400
commit26c0f03f6b77c513cb7bc37b73a06819bdbb791b (patch)
treef32ce924d002461216053dd4cf588e3c8e3272f2 /drivers/net/wireless/iwlwifi/iwl4965-base.c
parent35cdeaf4103b9a5c8a86899a5ed12a86c6a12a37 (diff)
iwlwifi: fix bug to show hidden APs during scan
Indirect scanning ('iwlist scan') should report information about hidden APs. When an AP is hidden it does not respond to active scanning, we thus have to use passive scanning to locate these APs. This fixes http://bughost.org/bugzilla/show_bug.cgi?id=1499 Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Tested-by: Bill Moss <bmoss@clemson.edu> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl4965-base.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl4965-base.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c
index b78ca7720bdf..0b7335181719 100644
--- a/drivers/net/wireless/iwlwifi/iwl4965-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c
@@ -6744,18 +6744,23 @@ static void iwl4965_bg_request_scan(struct work_struct *data)
6744 if (priv->iw_mode == IEEE80211_IF_TYPE_MNTR) 6744 if (priv->iw_mode == IEEE80211_IF_TYPE_MNTR)
6745 scan->filter_flags = RXON_FILTER_PROMISC_MSK; 6745 scan->filter_flags = RXON_FILTER_PROMISC_MSK;
6746 6746
6747 if (direct_mask) 6747 if (direct_mask) {
6748 IWL_DEBUG_SCAN 6748 IWL_DEBUG_SCAN
6749 ("Initiating direct scan for %s.\n", 6749 ("Initiating direct scan for %s.\n",
6750 iwl4965_escape_essid(priv->essid, priv->essid_len)); 6750 iwl4965_escape_essid(priv->essid, priv->essid_len));
6751 else 6751 scan->channel_count =
6752 iwl4965_get_channels_for_scan(
6753 priv, band, 1, /* active */
6754 direct_mask,
6755 (void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)]);
6756 } else {
6752 IWL_DEBUG_SCAN("Initiating indirect scan.\n"); 6757 IWL_DEBUG_SCAN("Initiating indirect scan.\n");
6753 6758 scan->channel_count =
6754 scan->channel_count = 6759 iwl4965_get_channels_for_scan(
6755 iwl4965_get_channels_for_scan( 6760 priv, band, 0, /* passive */
6756 priv, band, 1, /* active */ 6761 direct_mask,
6757 direct_mask, 6762 (void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)]);
6758 (void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)]); 6763 }
6759 6764
6760 cmd.len += le16_to_cpu(scan->tx_cmd.len) + 6765 cmd.len += le16_to_cpu(scan->tx_cmd.len) +
6761 scan->channel_count * sizeof(struct iwl4965_scan_channel); 6766 scan->channel_count * sizeof(struct iwl4965_scan_channel);