brcmfmac: handle exceptions in brcmf_bus_start correct.
On exception during brcmf_bus_start the netdev should be freed, if already allocated. Reviewed-by: Arend Van Spriel <arend@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Signed-off-by: Hante Meuleman <meuleman@broadcom.com> Signed-off-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
db22ae8cd2
commit
6b028c5ee2
|
@ -708,7 +708,6 @@ int brcmf_net_attach(struct brcmf_if *ifp)
|
|||
|
||||
fail:
|
||||
ndev->netdev_ops = NULL;
|
||||
free_netdev(ndev);
|
||||
return -EBADE;
|
||||
}
|
||||
|
||||
|
@ -858,15 +857,21 @@ int brcmf_bus_start(struct device *dev)
|
|||
/* Bus is ready, do any initialization */
|
||||
ret = brcmf_c_preinit_dcmds(ifp);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
goto fail;
|
||||
|
||||
drvr->config = brcmf_cfg80211_attach(drvr);
|
||||
if (drvr->config == NULL)
|
||||
return -ENOMEM;
|
||||
if (drvr->config == NULL) {
|
||||
ret = -ENOMEM;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
ret = brcmf_net_attach(ifp);
|
||||
fail:
|
||||
if (ret < 0) {
|
||||
brcmf_dbg(ERROR, "brcmf_net_attach failed");
|
||||
if (drvr->config)
|
||||
brcmf_cfg80211_detach(drvr->config);
|
||||
free_netdev(drvr->iflist[0]->ndev);
|
||||
drvr->iflist[0] = NULL;
|
||||
return ret;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue