WPS: Do not use sched_scan for provisioning step
authorJouni Malinen <jouni@qca.qualcomm.com>
Wed, 15 Feb 2012 18:39:54 +0000 (20:39 +0200)
committerJouni Malinen <j@w1.fi>
Wed, 15 Feb 2012 18:41:42 +0000 (20:41 +0200)
Normal scan is more reliable and faster for WPS operations and since
these are for short periods of time, the benefit of trying to use
sched_scan would be limited. This can fix WPS connectivity issues
with some drivers.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
intended-for: hostap-1

wpa_supplicant/scan.c

index 2cb4e32..7fddb74 100644 (file)
@@ -752,6 +752,20 @@ int wpa_supplicant_req_sched_scan(struct wpa_supplicant *wpa_s)
                        wildcard = 1;
                } else if (!ssid->disabled && ssid->ssid_len)
                        need_ssids++;
+
+#ifdef CONFIG_WPS
+               if (!ssid->disabled && ssid->key_mgmt == WPA_KEY_MGMT_WPS) {
+                       /*
+                        * Normal scan is more reliable and faster for WPS
+                        * operations and since these are for short periods of
+                        * time, the benefit of trying to use sched_scan would
+                        * be limited.
+                        */
+                       wpa_dbg(wpa_s, MSG_DEBUG, "Use normal scan instead of "
+                               "sched_scan for WPS");
+                       return -1;
+               }
+#endif /* CONFIG_WPS */
        }
        if (wildcard)
                need_ssids++;