[PATCH] Call might_sleep in tasklet_kill

From: Herbert Xu
Date: Sat May 08 2004 - 00:51:34 EST


Hi:

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.

Cheers,
--
Debian GNU/Linux 3.0 is out! ( http://www.debian.org/ )
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Index: kernel/softirq.c
===================================================================
RCS file: /home/gondolin/herbert/src/CVS/debian/kernel-source-2.5/kernel/softirq.c,v
retrieving revision 1.1.1.12
diff -u -r1.1.1.12 softirq.c
--- a/kernel/softirq.c 5 Apr 2004 09:49:43 -0000 1.1.1.12
+++ b/kernel/softirq.c 8 May 2004 05:48:50 -0000
@@ -286,8 +286,7 @@

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