diff options
author | Arend van Spriel <arend@broadcom.com> | 2013-11-29 05:48:16 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-12-02 14:25:17 -0500 |
commit | dcede4b8767dc4b12ce6324ac772776ae9f28569 (patch) | |
tree | fad5c3f6fe8f7879bf5680dfe2c5642418a43143 /drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c | |
parent | cf4582875a77c13adf8fec79b8ab3896d2b38e97 (diff) |
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>
Diffstat (limited to 'drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c')
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c index ab207e22e515..f4eeaa1b7319 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c | |||
@@ -769,7 +769,6 @@ static int brcmf_netdev_open(struct net_device *ndev) | |||
769 | struct brcmf_pub *drvr = ifp->drvr; | 769 | struct brcmf_pub *drvr = ifp->drvr; |
770 | struct brcmf_bus *bus_if = drvr->bus_if; | 770 | struct brcmf_bus *bus_if = drvr->bus_if; |
771 | u32 toe_ol; | 771 | u32 toe_ol; |
772 | s32 ret = 0; | ||
773 | 772 | ||
774 | brcmf_dbg(TRACE, "Enter, idx=%d\n", ifp->bssidx); | 773 | brcmf_dbg(TRACE, "Enter, idx=%d\n", ifp->bssidx); |
775 | 774 | ||
@@ -788,14 +787,14 @@ static int brcmf_netdev_open(struct net_device *ndev) | |||
788 | else | 787 | else |
789 | ndev->features &= ~NETIF_F_IP_CSUM; | 788 | ndev->features &= ~NETIF_F_IP_CSUM; |
790 | 789 | ||
791 | /* Allow transmit calls */ | ||
792 | netif_start_queue(ndev); | ||
793 | if (brcmf_cfg80211_up(ndev)) { | 790 | if (brcmf_cfg80211_up(ndev)) { |
794 | brcmf_err("failed to bring up cfg80211\n"); | 791 | brcmf_err("failed to bring up cfg80211\n"); |
795 | return -1; | 792 | return -EIO; |
796 | } | 793 | } |
797 | 794 | ||
798 | return ret; | 795 | /* Allow transmit calls */ |
796 | netif_start_queue(ndev); | ||
797 | return 0; | ||
799 | } | 798 | } |
800 | 799 | ||
801 | static const struct net_device_ops brcmf_netdev_ops_pri = { | 800 | static const struct net_device_ops brcmf_netdev_ops_pri = { |