Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6b028c5e authored by Hante Meuleman's avatar Hante Meuleman Committed by John W. Linville
Browse files

brcmfmac: handle exceptions in brcmf_bus_start correct.



On exception during brcmf_bus_start the netdev should be freed,
if already allocated.

Reviewed-by: default avatarArend Van Spriel <arend@broadcom.com>
Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: default avatarHante Meuleman <meuleman@broadcom.com>
Signed-off-by: default avatarFranky Lin <frankyl@broadcom.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent db22ae8c
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -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;
	}