提交 dcede4b8 编写于 作者: A Arend van Spriel 提交者: John W. Linville

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: NHante Meuleman <meuleman@broadcom.com>
Signed-off-by: NArend van Spriel <arend@broadcom.com>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 cf458287
...@@ -769,7 +769,6 @@ static int brcmf_netdev_open(struct net_device *ndev) ...@@ -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) ...@@ -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 = {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册