From: Vasiliy Kulikov Date: Tue, 28 Sep 2010 17:08:11 +0000 (+0400) Subject: staging: wlags49_h2: use free_netdev(netdev) instead of kfree() X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=b37e0c619dc231f292ed199f50c18f5bf508e16d;p=openwrt%2Fstaging%2Fblogic.git staging: wlags49_h2: use free_netdev(netdev) instead of kfree() Freeing netdev without free_netdev() leads to net, tx leaks. I might lead to dereferencing freed pointer. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) @@ struct net_device* dev; @@ -kfree(dev) +free_netdev(dev) Signed-off-by: Vasiliy Kulikov Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/wlags49_h2/wl_netdev.c b/drivers/staging/wlags49_h2/wl_netdev.c index e2a7ad05e545..954becee40d6 100644 --- a/drivers/staging/wlags49_h2/wl_netdev.c +++ b/drivers/staging/wlags49_h2/wl_netdev.c @@ -1586,7 +1586,7 @@ void wl_wds_device_dealloc( struct wl_private *lp ) dev_wds->flags &= ~( IFF_UP | IFF_RUNNING ); } - kfree( dev_wds ); + free_netdev(dev_wds); lp->wds_port[count].dev = NULL; } }