diff options
author | Xin LI <delphij@FreeBSD.org> | 2010-08-30 21:33:33 +0000 |
---|---|---|
committer | Xin LI <delphij@FreeBSD.org> | 2010-08-30 21:33:33 +0000 |
commit | 08390ba4c9709314bb37c26806e2520a96b790bb (patch) | |
tree | 3f7990a70b1abac2c9ea3451e7826ec49db48884 /sys/dev/twa | |
parent | a4703857ff47b53af55a43534cb76abd7235d760 (diff) | |
download | src-08390ba4c9709314bb37c26806e2520a96b790bb.tar.gz src-08390ba4c9709314bb37c26806e2520a96b790bb.zip |
Drain watchdog callouts before detaching. This prevents a panic while
unloading the kernel module.
Submitted by: Tom Cough
Notes
Notes:
svn path=/head/; revision=212028
Diffstat (limited to 'sys/dev/twa')
-rw-r--r-- | sys/dev/twa/tw_osl_freebsd.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/dev/twa/tw_osl_freebsd.c b/sys/dev/twa/tw_osl_freebsd.c index 5cb25bd98470..3b7b426a6285 100644 --- a/sys/dev/twa/tw_osl_freebsd.c +++ b/sys/dev/twa/tw_osl_freebsd.c @@ -903,6 +903,10 @@ twa_shutdown(device_t dev) /* Disconnect interrupts. */ error = twa_teardown_intr(sc); + /* Stop watchdog task. */ + callout_drain(&(sc->watchdog_callout[0])); + callout_drain(&(sc->watchdog_callout[1])); + /* Disconnect from the controller. */ if ((error = tw_cl_shutdown_ctlr(&(sc->ctlr_handle), 0))) { tw_osli_printf(sc, "error = %d", |