P2P: Fix bug in GO frequency selection
authorIlan Peer <ilan.peer@intel.com>
Sun, 3 Nov 2013 13:29:13 +0000 (15:29 +0200)
committerJouni Malinen <j@w1.fi>
Tue, 5 Nov 2013 08:55:22 +0000 (10:55 +0200)
When trying to choose a frequency that can be used for GO instantiation,
properly check if there are free channels that can be used.

Signed-hostap: Ilan Peer <ilan.peer@intel.com>

wpa_supplicant/p2p_supplicant.c

index f0accde..25bf4e7 100644 (file)
@@ -4605,7 +4605,7 @@ static int wpas_p2p_init_go_params(struct wpa_supplicant *wpa_s,
                }
 
                if (i == num) {
-                       if (num == wpa_s->num_multichan_concurrent) {
+                       if (wpas_p2p_num_unused_channels(wpa_s) <= 0) {
                                wpa_printf(MSG_DEBUG, "P2P: Cannot force GO on any of the channels we are already using");
                                os_free(freqs);
                                return -1;
@@ -4620,7 +4620,7 @@ static int wpas_p2p_init_go_params(struct wpa_supplicant *wpa_s,
                }
 
                if (i == num) {
-                       if (num == wpa_s->num_multichan_concurrent) {
+                       if (wpas_p2p_num_unused_channels(wpa_s) <= 0) {
                                wpa_printf(MSG_DEBUG, "P2P: Cannot force GO on freq (%u MHz) as all the channels are in use", freq);
                                os_free(freqs);
                                return -1;