brcmfmac: start netif queues only when setup is completed successful

Moving the call to netif_start_queue() after brcmf_cfg80211_up() is
completed successful. If not return -EIO instead of -1 as that results
in 'Operation not permitted' which can put user on wrong track.

Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Arend van Spriel 2013-11-29 11:48:16 +01:00 committed by John W. Linville
parent cf4582875a
commit dcede4b876
1 changed files with 4 additions and 5 deletions

View File

@ -769,7 +769,6 @@ static int brcmf_netdev_open(struct net_device *ndev)
struct brcmf_pub *drvr = ifp->drvr; struct brcmf_pub *drvr = ifp->drvr;
struct brcmf_bus *bus_if = drvr->bus_if; struct brcmf_bus *bus_if = drvr->bus_if;
u32 toe_ol; u32 toe_ol;
s32 ret = 0;
brcmf_dbg(TRACE, "Enter, idx=%d\n", ifp->bssidx); brcmf_dbg(TRACE, "Enter, idx=%d\n", ifp->bssidx);
@ -788,14 +787,14 @@ static int brcmf_netdev_open(struct net_device *ndev)
else else
ndev->features &= ~NETIF_F_IP_CSUM; ndev->features &= ~NETIF_F_IP_CSUM;
/* Allow transmit calls */
netif_start_queue(ndev);
if (brcmf_cfg80211_up(ndev)) { if (brcmf_cfg80211_up(ndev)) {
brcmf_err("failed to bring up cfg80211\n"); brcmf_err("failed to bring up cfg80211\n");
return -1; return -EIO;
} }
return ret; /* Allow transmit calls */
netif_start_queue(ndev);
return 0;
} }
static const struct net_device_ops brcmf_netdev_ops_pri = { static const struct net_device_ops brcmf_netdev_ops_pri = {