aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorJouni Malinen <jkmaline@cc.hut.fi>2005-07-30 15:50:03 -0400
committerJeff Garzik <jgarzik@pobox.com>2005-07-30 18:17:23 -0400
commit0c629a69fd8ec7b67566cfc052a9b1c4b927805a (patch)
tree13c08758ef220b91a94299909d29252497313fc9 /drivers/net/wireless
parent2e4fd068e7e25e654a454ed4a425f239c0f6407a (diff)
[PATCH] hostap update
Firmware seems to be getting into odd state in host_roaming mode 2 when hostscan is used without join command, so try to fix this by re-joining the current AP. This does not actually trigger a new association if the current AP is still in the scan results. This makes background scans (iwlist wlan0 scan) not to break data connection when in host_roaming 2 mode, e.g., when using wpa_supplicant. Signed-off-by: Jouni Malinen <jkmaline@cc.hut.fi> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/hostap/hostap_info.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/wireless/hostap/hostap_info.c b/drivers/net/wireless/hostap/hostap_info.c
index 6ca94918e0f8..5aa998fdf1c4 100644
--- a/drivers/net/wireless/hostap/hostap_info.c
+++ b/drivers/net/wireless/hostap/hostap_info.c
@@ -453,6 +453,19 @@ static void handle_info_queue_scanresults(local_info_t *local)
453{ 453{
454 if (local->host_roaming == 1 && local->iw_mode == IW_MODE_INFRA) 454 if (local->host_roaming == 1 && local->iw_mode == IW_MODE_INFRA)
455 prism2_host_roaming(local); 455 prism2_host_roaming(local);
456
457 if (local->host_roaming == 2 && local->iw_mode == IW_MODE_INFRA &&
458 memcmp(local->preferred_ap, "\x00\x00\x00\x00\x00\x00",
459 ETH_ALEN) != 0) {
460 /*
461 * Firmware seems to be getting into odd state in host_roaming
462 * mode 2 when hostscan is used without join command, so try
463 * to fix this by re-joining the current AP. This does not
464 * actually trigger a new association if the current AP is
465 * still in the scan results.
466 */
467 prism2_host_roaming(local);
468 }
456} 469}
457 470
458 471