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>
 
 fail:
        ndev->netdev_ops = NULL;
-       free_netdev(ndev);
        return -EBADE;
 }
 
        /* 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;
        }