diff options
Diffstat (limited to 'drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c')
| -rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c | 6 | 
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c index f04e3555dca..b98f2235978 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c @@ -653,6 +653,7 @@ int brcmf_net_attach(struct brcmf_if *ifp, bool rtnl_locked)  	brcmf_dbg(INFO, "%s: Broadcom Dongle Host Driver\n", ndev->name); +	ndev->destructor = free_netdev;  	return 0;  fail: @@ -793,6 +794,7 @@ void brcmf_del_if(struct brcmf_pub *drvr, s32 bssidx)  	struct brcmf_if *ifp;  	ifp = drvr->iflist[bssidx]; +	drvr->iflist[bssidx] = NULL;  	if (!ifp) {  		brcmf_err("Null interface, idx=%d\n", bssidx);  		return; @@ -813,15 +815,13 @@ void brcmf_del_if(struct brcmf_pub *drvr, s32 bssidx)  			cancel_work_sync(&ifp->setmacaddr_work);  			cancel_work_sync(&ifp->multicast_work);  		} - +		/* unregister will take care of freeing it */  		unregister_netdev(ifp->ndev);  		if (bssidx == 0)  			brcmf_cfg80211_detach(drvr->config); -		free_netdev(ifp->ndev);  	} else {  		kfree(ifp);  	} -	drvr->iflist[bssidx] = NULL;  }  int brcmf_attach(uint bus_hdrlen, struct device *dev)  |