From c46235aaf077141e4fa686da3f56f0511aed3669 Mon Sep 17 00:00:00 2001 From: Andrei Otcheretianski Date: Thu, 20 Mar 2014 09:24:11 +0200 Subject: [PATCH] wpa_supplicant: Fix radio_remove_interface Remove pending radio works when an interface is removed from a radio. Signed-off-by: Andrei Otcheretianski --- wpa_supplicant/wpa_supplicant.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c index 171fc6058..690fd0672 100644 --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c @@ -3204,15 +3204,13 @@ static void radio_remove_interface(struct wpa_supplicant *wpa_s) wpa_printf(MSG_DEBUG, "Remove interface %s from radio %s", wpa_s->ifname, radio->name); dl_list_del(&wpa_s->radio_list); - if (!dl_list_empty(&radio->ifaces)) { - wpa_s->radio = NULL; + radio_remove_works(wpa_s, NULL, 0); + wpa_s->radio = NULL; + if (!dl_list_empty(&radio->ifaces)) return; /* Interfaces remain for this radio */ - } wpa_printf(MSG_DEBUG, "Remove radio %s", radio->name); - radio_remove_works(wpa_s, NULL, 0); eloop_cancel_timeout(radio_start_next_work, radio, NULL); - wpa_s->radio = NULL; os_free(radio); }