wpa_supplicant: Fix radio_remove_interface
authorAndrei Otcheretianski <andrei.otcheretianski@intel.com>
Thu, 20 Mar 2014 07:24:11 +0000 (09:24 +0200)
committerJouni Malinen <j@w1.fi>
Fri, 21 Mar 2014 20:21:37 +0000 (22:21 +0200)
Remove pending radio works when an interface is removed from a radio.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
wpa_supplicant/wpa_supplicant.c

index 171fc60..690fd06 100644 (file)
@@ -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);
 }