summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaun Ruffell <sruffell@digium.com>2012-04-03 20:10:12 +0000
committerShaun Ruffell <sruffell@digium.com>2012-04-03 20:10:12 +0000
commit9b43bbf28005b74493df11f6615c2f90e0588ee6 (patch)
tree170ed3366f7aac8bcb3ac9f34c353a8457609b9c
parente82b302fcd78f7265a086220d017042806cf2869 (diff)
dahdi_dynamic: Close race on unload if red alarm timer was running when unloaded.
I saw a kernel oops that was the result of the timer running after the dahdi_dynamic module was unloaded. Now we wait for the timer to complete, and then delete it again in case it reactivated itself. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10625 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.6@10630 a0bf4364-ded3-4de4-8d8a-66a801d63aff
-rw-r--r--drivers/dahdi/dahdi_dynamic.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/dahdi/dahdi_dynamic.c b/drivers/dahdi/dahdi_dynamic.c
index ba6b68e..76c9c54 100644
--- a/drivers/dahdi/dahdi_dynamic.c
+++ b/drivers/dahdi/dahdi_dynamic.c
@@ -862,6 +862,9 @@ static void dahdi_dynamic_cleanup(void)
tasklet_kill(&dahdi_dynamic_tlet);
}
#endif
+ del_timer_sync(&alarmcheck);
+ /* Must call again in case it was running before and rescheduled
+ * itself. */
del_timer(&alarmcheck);
printk(KERN_INFO "DAHDI Dynamic Span support unloaded\n");
}