Previously we set this flag to one in wpa_supplicant_init_iface if Wi-Fi controller does not have dedicated P2P-interface. This setting had effect only in scope of wpa_supplicant_init_iface and it contradicts with comment to 'struct wpa_interface > p2p_mgmt' field. This comment says that this flag is used only if Wi-Fi controller has dedicated P2P-device interface. Also it contradicts with usage of similiar p2p_mgmt field in wpa_supplicant struct. Again field p2p_mgmt in wpa_supplicant struct is set only for dedicated P2P-device interface. After this change wpa_interface become input argument to wpa_supplicant_init_iface that we are not modifying. Signed-off-by: Vasyl Vavrychuk <vvavrychuk@xxxxxxxxx> --- wpa_supplicant/wpa_supplicant.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c index fcb267764..73033eb3a 100644 --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c @@ -5123,7 +5123,7 @@ radio_work_pending(struct wpa_supplicant *wpa_s, const char *type) static int wpas_init_driver(struct wpa_supplicant *wpa_s, - struct wpa_interface *iface) + const struct wpa_interface *iface) { const char *ifname, *driver, *rn; @@ -5207,7 +5207,7 @@ static void wpas_gas_server_tx(void *ctx, int freq, const u8 *da, #endif /* CONFIG_GAS_SERVER */ static int wpa_supplicant_init_iface(struct wpa_supplicant *wpa_s, - struct wpa_interface *iface) + const struct wpa_interface *iface) { struct wpa_driver_capa capa; int capa_res; @@ -5408,8 +5408,6 @@ static int wpa_supplicant_init_iface(struct wpa_supplicant *wpa_s, */ if (wpa_s->drv_flags & WPA_DRIVER_FLAGS_DEDICATED_P2P_DEVICE) wpa_s->p2p_mgmt = iface->p2p_mgmt; - else - iface->p2p_mgmt = 1; if (wpa_s->num_multichan_concurrent == 0) wpa_s->num_multichan_concurrent = 1; @@ -5418,11 +5416,10 @@ static int wpa_supplicant_init_iface(struct wpa_supplicant *wpa_s, return -1; #ifdef CONFIG_TDLS - if ((!iface->p2p_mgmt || - !(wpa_s->drv_flags & - WPA_DRIVER_FLAGS_DEDICATED_P2P_DEVICE)) && - wpa_tdls_init(wpa_s->wpa)) - return -1; + if (!iface->p2p_mgmt) { + if (wpa_tdls_init(wpa_s->wpa)) + return -1; + } #endif /* CONFIG_TDLS */ if (wpa_s->conf->country[0] && wpa_s->conf->country[1] && @@ -5493,9 +5490,12 @@ static int wpa_supplicant_init_iface(struct wpa_supplicant *wpa_s, return -1; } - if (iface->p2p_mgmt && wpas_p2p_init(wpa_s->global, wpa_s) < 0) { - wpa_msg(wpa_s, MSG_ERROR, "Failed to init P2P"); - return -1; + if (!(wpa_s->drv_flags & WPA_DRIVER_FLAGS_DEDICATED_P2P_DEVICE) || + wpa_s->p2p_mgmt) { + if (wpas_p2p_init(wpa_s->global, wpa_s) < 0) { + wpa_msg(wpa_s, MSG_ERROR, "Failed to init P2P"); + return -1; + } } if (wpa_bss_init(wpa_s) < 0) -- 2.11.0 _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap