diff options
author | Arend van Spriel <arend@broadcom.com> | 2013-06-07 11:03:00 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-06-13 13:24:12 -0400 |
commit | fcb3701849957917a234a61b58ad70ed35c83eda (patch) | |
tree | 4199a5c57c41c430b47f45bdbc7ea8e7e7d7377a | |
parent | ea05fea9042620ac3b8ab9a3e5e4d2ed80c89244 (diff) | |
download | linux-3.10-fcb3701849957917a234a61b58ad70ed35c83eda.tar.gz linux-3.10-fcb3701849957917a234a61b58ad70ed35c83eda.tar.bz2 linux-3.10-fcb3701849957917a234a61b58ad70ed35c83eda.zip |
brcmfmac: free primary net_device when brcmf_bus_start() fails
When initialization within brcmf_bus_start() fails on steps
before the brcmf_net_attach() the net_device for the primary
interface needs to be freed.
This patch resolves a panic during kernel boot as reported
by Stephen Warren.
ref.: http://mid.gmane.org/51AD1F22.2080004@wwwdotorg.org
Tested-by: Stephen Warren <swarren@nvidia.com>
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>
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c index b98f2235978..2c593570497 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c @@ -930,6 +930,10 @@ fail: brcmf_fws_del_interface(ifp); brcmf_fws_deinit(drvr); } + if (drvr->iflist[0]) { + free_netdev(ifp->ndev); + drvr->iflist[0] = NULL; + } if (p2p_ifp) { free_netdev(p2p_ifp->ndev); drvr->iflist[1] = NULL; |