|
@@ -2328,7 +2328,9 @@ int wpa_supplicant_update_mac_addr(struct wpa_supplicant *wpa_s)
|
|
|
const u8 *addr = wpa_drv_get_mac_addr(wpa_s);
|
|
|
if (addr)
|
|
|
os_memcpy(wpa_s->own_addr, addr, ETH_ALEN);
|
|
|
- } else if (!wpa_s->p2p_mgmt &&
|
|
|
+ } else if ((!wpa_s->p2p_mgmt ||
|
|
|
+ !(wpa_s->drv_flags &
|
|
|
+ WPA_DRIVER_FLAGS_DEDICATED_P2P_DEVICE)) &&
|
|
|
!(wpa_s->drv_flags &
|
|
|
WPA_DRIVER_FLAGS_P2P_DEDICATED_INTERFACE)) {
|
|
|
l2_packet_deinit(wpa_s->l2);
|
|
@@ -2975,7 +2977,10 @@ next_driver:
|
|
|
return -1;
|
|
|
|
|
|
#ifdef CONFIG_TDLS
|
|
|
- if (!iface->p2p_mgmt && wpa_tdls_init(wpa_s->wpa))
|
|
|
+ if ((!iface->p2p_mgmt ||
|
|
|
+ !(wpa_s->drv_flags &
|
|
|
+ WPA_DRIVER_FLAGS_DEDICATED_P2P_DEVICE)) &&
|
|
|
+ wpa_tdls_init(wpa_s->wpa))
|
|
|
return -1;
|
|
|
#endif /* CONFIG_TDLS */
|
|
|
|