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 <[EMAIL PROTECTED]>

Index: netdev-2.6/drivers/net/wireless/hostap/hostap_info.c
===================================================================
--- netdev-2.6.orig/drivers/net/wireless/hostap/hostap_info.c
+++ netdev-2.6/drivers/net/wireless/hostap/hostap_info.c
@@ -453,6 +453,19 @@ static void handle_info_queue_scanresult
 {
        if (local->host_roaming == 1 && local->iw_mode == IW_MODE_INFRA)
                prism2_host_roaming(local);
+
+       if (local->host_roaming == 2 && local->iw_mode == IW_MODE_INFRA &&
+           memcmp(local->preferred_ap, "\x00\x00\x00\x00\x00\x00",
+                  ETH_ALEN) != 0) {
+               /*
+                * 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.
+                */
+               prism2_host_roaming(local);
+       }
 }
 
 

--
-- 
Jouni Malinen                                            PGP id EFC895FA
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to