diff options
author | Arend van Spriel <arend@broadcom.com> | 2014-01-06 12:40:49 +0100 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-01-06 15:48:06 -0500 |
commit | 9df4d542fc716fa2235d20afd086d78253901612 (patch) | |
tree | dcca3c7278b38c1bb72997b09799db4f52eefb37 /drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c | |
parent | e14799514da335159879bb8c37d5c4491357b0b4 (diff) | |
download | linux-9df4d542fc716fa2235d20afd086d78253901612.tar.gz linux-9df4d542fc716fa2235d20afd086d78253901612.tar.bz2 linux-9df4d542fc716fa2235d20afd086d78253901612.zip |
brcmfmac: use custom destructor callback for all netdevice interfaces
The destructor for net devices was set to free_netdev() to get rid
of it and the private data. The private data refers to a brcmf_if
instance, but indirectly it also refers to brcmf_cfg80211_vif which
holds the wdev. This is freed as well by using a new custom destructor
called brcmf_cfg80211_free_netdev().
Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c')
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c index 3e3de34422bd..aad83aef7d93 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c @@ -4385,6 +4385,18 @@ void brcmf_free_vif(struct brcmf_cfg80211_vif *vif) kfree(vif); } +void brcmf_cfg80211_free_netdev(struct net_device *ndev) +{ + struct brcmf_cfg80211_vif *vif; + struct brcmf_if *ifp; + + ifp = netdev_priv(ndev); + vif = ifp->vif; + + brcmf_free_vif(vif); + free_netdev(ndev); +} + static bool brcmf_is_linkup(const struct brcmf_event_msg *e) { u32 event = e->event_code; |