aboutsummaryrefslogtreecommitdiffstats
path: root/wpa_supplicant
diff options
context:
space:
mode:
authorSunil Dutt <usdutt@qti.qualcomm.com>2016-10-21 06:43:16 (GMT)
committerJouni Malinen <j@w1.fi>2016-10-24 15:37:27 (GMT)
commit783c2920cc9117b663506dc82223867bfa792a5d (patch)
tree912263ff2504364af43e4610bc4725ca15ddcb77 /wpa_supplicant
parenta660993772fbe9c1e5f5bb7f754c2e647bc86c44 (diff)
downloadhostap-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.c6
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",