|
@@ -6309,18 +6309,23 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
|
|
|
if (priv->iw_mode == IEEE80211_IF_TYPE_MNTR)
|
|
|
scan->filter_flags = RXON_FILTER_PROMISC_MSK;
|
|
|
|
|
|
- if (direct_mask)
|
|
|
+ if (direct_mask) {
|
|
|
IWL_DEBUG_SCAN
|
|
|
("Initiating direct scan for %s.\n",
|
|
|
iwl3945_escape_essid(priv->essid, priv->essid_len));
|
|
|
- else
|
|
|
+ scan->channel_count =
|
|
|
+ iwl3945_get_channels_for_scan(
|
|
|
+ priv, band, 1, /* active */
|
|
|
+ direct_mask,
|
|
|
+ (void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)]);
|
|
|
+ } else {
|
|
|
IWL_DEBUG_SCAN("Initiating indirect scan.\n");
|
|
|
-
|
|
|
- scan->channel_count =
|
|
|
- iwl3945_get_channels_for_scan(
|
|
|
- priv, band, 1, /* active */
|
|
|
- direct_mask,
|
|
|
- (void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)]);
|
|
|
+ scan->channel_count =
|
|
|
+ iwl3945_get_channels_for_scan(
|
|
|
+ priv, band, 0, /* passive */
|
|
|
+ direct_mask,
|
|
|
+ (void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)]);
|
|
|
+ }
|
|
|
|
|
|
cmd.len += le16_to_cpu(scan->tx_cmd.len) +
|
|
|
scan->channel_count * sizeof(struct iwl3945_scan_channel);
|