From 05bac84ce8686d7edcc027242264fc67657e4d37 Mon Sep 17 00:00:00 2001 From: Shaun Ruffell Date: Tue, 3 Apr 2012 20:10:12 +0000 Subject: [PATCH] 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 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 --- drivers/dahdi/dahdi_dynamic.c | 3 +++ 1 file changed, 3 insertions(+) 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"); }