diff options
author | Dmitry Shmidt <dimitrysh@google.com> | 2011-06-02 16:08:37 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:38:35 -0800 |
commit | afe12a01f05905b4586a9548d3de0f8469752ded (patch) | |
tree | f8cbf9a31ceb7a1311c91424c6b1ab1fd10475d0 | |
parent | ab2f210506b298faee0d5be508c6fb9964d0910d (diff) |
net: wireless: bcmdhd: Fix watchdog firing in softirq on removal
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
-rw-r--r-- | drivers/net/wireless/bcmdhd/dhd_linux.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/wireless/bcmdhd/dhd_linux.c b/drivers/net/wireless/bcmdhd/dhd_linux.c index 359384583e01..8513fcc66135 100644 --- a/drivers/net/wireless/bcmdhd/dhd_linux.c +++ b/drivers/net/wireless/bcmdhd/dhd_linux.c @@ -2901,9 +2901,6 @@ dhd_bus_detach(dhd_pub_t *dhdp) /* Stop the bus module */ dhd_bus_stop(dhd->pub.bus, TRUE); - /* Clear the watchdog timer */ - dhd->wd_timer_valid = FALSE; - del_timer_sync(&dhd->timer); #if defined(OOB_INTR_ONLY) bcmsdh_unregister_oob_intr(); #endif /* defined(OOB_INTR_ONLY) */ @@ -2985,6 +2982,10 @@ void dhd_detach(dhd_pub_t *dhdp) } } + /* Clear the watchdog timer */ + dhd->wd_timer_valid = FALSE; + del_timer_sync(&dhd->timer); + if (dhd->dhd_state & DHD_ATTACH_STATE_THREADS_CREATED) { #ifdef DHDTHREAD if (dhd->thr_wdt_ctl.thr_pid >= 0) { |