diff options
author | Dmitry Shmidt <dimitrysh@google.com> | 2011-11-09 13:06:25 -0800 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:39:18 -0800 |
commit | c19301dfaffa6aed346a467006eae603f02c0e3b (patch) | |
tree | 73145ed649e74a8ec3a5b2fa31a5041a6bb3251e /drivers | |
parent | c863ab56d50fb3d45099e83a005d2ce573d8f587 (diff) |
net: wireless: bcmdhd: Call init_ioctl() only if was started properly for WEXT
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/bcmdhd/wl_iw.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/net/wireless/bcmdhd/wl_iw.c b/drivers/net/wireless/bcmdhd/wl_iw.c index 3acdea19cb4f..ba3cc6c876ca 100644 --- a/drivers/net/wireless/bcmdhd/wl_iw.c +++ b/drivers/net/wireless/bcmdhd/wl_iw.c @@ -1667,8 +1667,8 @@ wl_control_wl_start(struct net_device *dev) #if defined(BCMLXSDMMC) sdioh_start(NULL, 1); #endif - - dhd_dev_init_ioctl(dev); + if (!ret) + dhd_dev_init_ioctl(dev); g_onoff = G_WLAN_SET_ON; } @@ -1715,7 +1715,7 @@ wl_iw_control_wl_off( g_iscan->iscan_state = ISCAN_STATE_IDLE; #endif - dhd_dev_reset(dev, 1); + ret = dhd_dev_reset(dev, 1); #if defined(WL_IW_USE_ISCAN) #if !defined(CSCAN) @@ -1738,9 +1738,6 @@ wl_iw_control_wl_off( sdioh_stop(NULL); #endif - - net_os_set_dtim_skip(dev, 0); - dhd_customer_gpio_wlan_ctrl(WLAN_RESET_OFF); wl_iw_send_priv_event(dev, "STOP"); @@ -8147,7 +8144,7 @@ wl_iw_event(struct net_device *dev, wl_event_msg_t *e, void* data) case WLC_E_ROAM: if (status == WLC_E_STATUS_SUCCESS) { WL_ASSOC((" WLC_E_ROAM : success \n")); - return; + goto wl_iw_event_end; } break; @@ -8285,6 +8282,11 @@ wl_iw_event(struct net_device *dev, wl_event_msg_t *e, void* data) case WLC_E_SCAN_COMPLETE: #if defined(WL_IW_USE_ISCAN) + if (!g_iscan) { + WL_ERROR(("Event WLC_E_SCAN_COMPLETE on g_iscan NULL!")); + goto wl_iw_event_end; + } + if ((g_iscan) && (g_iscan->tsk_ctl.thr_pid >= 0) && (g_iscan->iscan_state != ISCAN_STATE_IDLE)) { |