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>

git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@10625 a0bf4364-ded3-4de4-8d8a-66a801d63aff
This commit is contained in:
Shaun Ruffell 2012-04-03 19:44:37 +00:00
parent d46ad9bca1
commit 9c0bb57efb

View File

@ -857,6 +857,9 @@ static void dahdi_dynamic_cleanup(void)
tasklet_kill(&dahdi_dynamic_tlet); tasklet_kill(&dahdi_dynamic_tlet);
} }
#endif #endif
del_timer_sync(&alarmcheck);
/* Must call again in case it was running before and rescheduled
* itself. */
del_timer(&alarmcheck); del_timer(&alarmcheck);
printk(KERN_INFO "DAHDI Dynamic Span support unloaded\n"); printk(KERN_INFO "DAHDI Dynamic Span support unloaded\n");
} }