summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2011-06-02 16:08:37 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:38:35 -0800
commitafe12a01f05905b4586a9548d3de0f8469752ded (patch)
treef8cbf9a31ceb7a1311c91424c6b1ab1fd10475d0
parentab2f210506b298faee0d5be508c6fb9964d0910d (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.c7
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) {