diff options
author | Sunil Dutt <usdutt@qti.qualcomm.com> | 2016-10-21 06:43:16 (GMT) |
---|---|---|
committer | Jouni Malinen <j@w1.fi> | 2016-10-24 15:37:27 (GMT) |
commit | 783c2920cc9117b663506dc82223867bfa792a5d (patch) | |
tree | 912263ff2504364af43e4610bc4725ca15ddcb77 /wpa_supplicant | |
parent | a660993772fbe9c1e5f5bb7f754c2e647bc86c44 (diff) | |
download | hostap-783c2920cc9117b663506dc82223867bfa792a5d.zip hostap-783c2920cc9117b663506dc82223867bfa792a5d.tar.gz hostap-783c2920cc9117b663506dc82223867bfa792a5d.tar.bz2 |
P2P: Check if the pref_freq reported by the driver supports P2P
Filter out get_pref_freq_list() (i.e.,
QCA_NL80211_VENDOR_SUBCMD_GET_PREFERRED_FREQ_LIST) output in case of
channel negotiation by removing channels that do not allow P2P operation
at all. Previously, only the explicitly disallowed channels were removed
and that could have resulted in selecting an operating channel that is
not allowed for P2P and failing to complete the operation to start the
group.
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Diffstat (limited to 'wpa_supplicant')
-rw-r--r-- | wpa_supplicant/p2p_supplicant.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c index b1fdc28..648c840 100644 --- a/wpa_supplicant/p2p_supplicant.c +++ b/wpa_supplicant/p2p_supplicant.c @@ -5236,8 +5236,10 @@ static int wpas_p2p_setup_freqs(struct wpa_supplicant *wpa_s, int freq, if (!res && max_pref_freq > 0) { *num_pref_freq = max_pref_freq; i = 0; - while (wpas_p2p_disallowed_freq(wpa_s->global, - pref_freq_list[i]) && + while ((!p2p_supported_freq(wpa_s->global->p2p, + pref_freq_list[i]) || + wpas_p2p_disallowed_freq(wpa_s->global, + pref_freq_list[i])) && i < *num_pref_freq) { wpa_printf(MSG_DEBUG, "P2P: preferred_freq_list[%d]=%d is disallowed", |