]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
P2P: Fix channel selection for MCC case
authorJouni Malinen <jouni@qca.qualcomm.com>
Mon, 18 Nov 2013 14:53:44 +0000 (16:53 +0200)
committerJouni Malinen <j@w1.fi>
Mon, 18 Nov 2013 14:53:44 +0000 (16:53 +0200)
Commit 0d08efa447a5c5fb20bbed18a2ced36a8afe9221 modified
wpas_p2p_setup_freqs() design to use number of MCC channels capability
from the driver. However, it resulted in regression on how the preferred
vs. forced channel selection is done in the case of a MCC device.
force_freq was set unconditionally even though this was supposed to be
done only if no additional channels are available. pref_freq needs to be
used when possible to avoid preventing connection.

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

wpa_supplicant/p2p_supplicant.c

index dda2148bb8073466884b287ed75490ff415b322f..1ea5afc0673528af68ca64fc534eaca5b13ddd1c 100644 (file)
@@ -4162,13 +4162,14 @@ static int wpas_p2p_setup_freqs(struct wpa_supplicant *wpa_s, int freq,
                if (!p2p_supported_freq(wpa_s->global->p2p, freqs[i]))
                        continue;
 
-               wpa_printf(MSG_DEBUG, "P2P: Try to force us to use frequency (%u MHz) which is already in use",
-                          *force_freq);
-               *force_freq = freqs[i];
-
                if (*pref_freq == 0 && num < wpa_s->num_multichan_concurrent) {
-                       wpa_printf(MSG_DEBUG, "P2P: Try to prefer a frequency we are already using");
-                       *pref_freq = *force_freq;
+                       wpa_printf(MSG_DEBUG, "P2P: Try to prefer a frequency (%u MHz) we are already using",
+                                  freqs[i]);
+                       *pref_freq = freqs[i];
+               } else {
+                       wpa_printf(MSG_DEBUG, "P2P: Try to force us to use frequency (%u MHz) which is already in use",
+                                  freqs[i]);
+                       *force_freq = freqs[i];
                }
                break;
        }