diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c index 4b5c95de3..1c339d2d6 100644 --- a/wpa_supplicant/p2p_supplicant.c +++ b/wpa_supplicant/p2p_supplicant.c @@ -2479,7 +2479,6 @@ void wpas_p2p_deinit(struct wpa_supplicant *wpa_s) void wpas_p2p_deinit_global(struct wpa_global *global) { struct wpa_supplicant *wpa_s, *tmp; - char *ifname; if (global->p2p == NULL) return; @@ -2500,12 +2499,9 @@ void wpas_p2p_deinit_global(struct wpa_global *global) } if (tmp == NULL) break; - ifname = os_strdup(tmp->ifname); type = wpas_p2p_if_type(tmp->p2p_group_interface); - wpa_supplicant_remove_iface(global, tmp, 0); - if (ifname) - wpa_drv_if_remove(wpa_s, type, ifname); - os_free(ifname); + /* Disconnect from the P2P group and deinit the interface */ + wpas_p2p_disconnect(tmp); } /*