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@xxxxxxxxx> --- drivers/staging/ath6kl/os/linux/ar6000_drv.c | 8 -------- 1 files changed, 0 insertions(+), 8 deletions(-) diff --git a/drivers/staging/ath6kl/os/linux/ar6000_drv.c b/drivers/staging/ath6kl/os/linux/ar6000_drv.c index daba6e4..c5a6d6c 100644 --- a/drivers/staging/ath6kl/os/linux/ar6000_drv.c +++ b/drivers/staging/ath6kl/os/linux/ar6000_drv.c @@ -2143,11 +2143,7 @@ ar6000_destroy(struct net_device *dev, unsigned int unregister) unregister_netdev(dev); is_netdev_registered = 0; } -#ifndef free_netdev - kfree(dev); -#else free_netdev(dev); -#endif #ifdef ATH6K_CONFIG_CFG80211 ar6k_cfg80211_deinit(ar); @@ -6429,11 +6425,7 @@ A_STATUS ar6000_remove_ap_interface(AR_SOFTC_T *ar) ar6000_stop_ap_interface(ar); unregister_netdev(arApNetDev); -#ifndef free_netdev - kfree(arApNetDev); -#else free_netdev(apApNetDev); -#endif A_PRINTF("Remove AP interface\n"); } -- 1.7.0.4 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel