Make sure wpas_p2p_init_go_params respects the p2p_ignore_shared_freq configuration option. Choose currently used frequencies only if this option is not set, or there are no unused channels left. Signed-off-by: Eliad Peller <eliad@xxxxxxxxxx> --- wpa_supplicant/p2p_supplicant.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c index 3295654..0c61621 100644 --- a/wpa_supplicant/p2p_supplicant.c +++ b/wpa_supplicant/p2p_supplicant.c @@ -5767,6 +5767,7 @@ static int wpas_p2p_init_go_params(struct wpa_supplicant *wpa_s, unsigned int cand; unsigned int num, i; int ignore_no_freqs = 0; + int unused_channels = wpas_p2p_num_unused_channels(wpa_s) > 0; os_memset(params, 0, sizeof(*params)); params->role_go = 1; @@ -5823,8 +5824,7 @@ static int wpas_p2p_init_go_params(struct wpa_supplicant *wpa_s, } } - if (!ignore_no_freqs && - wpas_p2p_num_unused_channels(wpa_s) <= 0) { + if (!ignore_no_freqs && !unused_channels) { wpa_printf(MSG_DEBUG, "P2P: Cannot force GO on freq (%d MHz) as all the channels are in use", freq); @@ -5839,7 +5839,8 @@ static int wpas_p2p_init_go_params(struct wpa_supplicant *wpa_s, } /* consider using one of the shared frequencies */ - if (num) { + if (num && + (!wpa_s->conf->p2p_ignore_shared_freq || !unused_channels)) { cand = wpas_p2p_pick_best_used_freq(wpa_s, freqs, num); if (wpas_p2p_supported_freq_go(wpa_s, channels, cand)) { wpa_printf(MSG_DEBUG, @@ -5862,8 +5863,7 @@ static int wpas_p2p_init_go_params(struct wpa_supplicant *wpa_s, } } - if (!ignore_no_freqs && - wpas_p2p_num_unused_channels(wpa_s) <= 0) { + if (!ignore_no_freqs && !unused_channels) { wpa_printf(MSG_DEBUG, "P2P: Cannot force GO on any of the channels we are already using"); goto fail; -- 2.6.3 _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap