wl1271: Fix memory leaks on driver initialization
authorJuuso Oikarinen <juuso.oikarinen@nokia.com>
Fri, 9 Apr 2010 08:07:26 +0000 (11:07 +0300)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 9 Apr 2010 17:43:09 +0000 (13:43 -0400)
This patch fixes some memory leaks occurring during driver init/de-init.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/wl12xx/wl1271_main.c

index 5c32d8d723612fcbc1220ab6fe66b65d27e915c7..4e9754056d456251afa7be048b8663d9b257f691 100644 (file)
@@ -1093,6 +1093,14 @@ static void wl1271_op_remove_interface(struct ieee80211_hw *hw,
                wl->tx_blocks_freed[i] = 0;
 
        wl1271_debugfs_reset(wl);
+
+       kfree(wl->fw_status);
+       wl->fw_status = NULL;
+       kfree(wl->tx_res_if);
+       wl->tx_res_if = NULL;
+       kfree(wl->target_mem_map);
+       wl->target_mem_map = NULL;
+
        mutex_unlock(&wl->mutex);
 }
 
@@ -2387,7 +2395,6 @@ int wl1271_free_hw(struct wl1271 *wl)
 
        wl1271_debugfs_exit(wl);
 
-       kfree(wl->target_mem_map);
        vfree(wl->fw);
        wl->fw = NULL;
        kfree(wl->nvs);