From: Herbert Xu The following patch calls might_sleep in tasklet_kill. This would've helped in tracking down http://bugs.debian.org/234365 where someone called tasklet_kill with IRQs disabled. --- 25-akpm/kernel/softirq.c | 3 +-- 1 files changed, 1 insertion(+), 2 deletions(-) diff -puN kernel/softirq.c~call-might_sleep-in-tasklet_kill kernel/softirq.c --- 25/kernel/softirq.c~call-might_sleep-in-tasklet_kill 2004-05-07 22:51:42.864780792 -0700 +++ 25-akpm/kernel/softirq.c 2004-05-07 22:51:42.867780336 -0700 @@ -311,8 +311,7 @@ EXPORT_SYMBOL(tasklet_init); void tasklet_kill(struct tasklet_struct *t) { - if (in_interrupt()) - printk("Attempt to kill tasklet from interrupt\n"); + might_sleep(); while (test_and_set_bit(TASKLET_STATE_SCHED, &t->state)) { do _