Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

staging: ath6kl: use free_netdev(netdev) instead of kfree()

It is not guaranteed that free_netdev() is macro.
Freeing netdev without free_netdev() leads to net, tx leaks.
I might lead to dereferencing freed pointer.

Signed-off-by: Vasiliy Kulikov <segooon@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

authored by

Vasiliy Kulikov and committed by
Greg Kroah-Hartman
8db3271c 2166abeb

-8
-8
drivers/staging/ath6kl/os/linux/ar6000_drv.c
··· 2143 2143 unregister_netdev(dev); 2144 2144 is_netdev_registered = 0; 2145 2145 } 2146 - #ifndef free_netdev 2147 - kfree(dev); 2148 - #else 2149 2146 free_netdev(dev); 2150 - #endif 2151 2147 2152 2148 #ifdef ATH6K_CONFIG_CFG80211 2153 2149 ar6k_cfg80211_deinit(ar); ··· 6425 6429 ar6000_stop_ap_interface(ar); 6426 6430 6427 6431 unregister_netdev(arApNetDev); 6428 - #ifndef free_netdev 6429 - kfree(arApNetDev); 6430 - #else 6431 6432 free_netdev(apApNetDev); 6432 - #endif 6433 6433 6434 6434 A_PRINTF("Remove AP interface\n"); 6435 6435 }