lkml.org 
[lkml]   [2001]   [Nov]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH]: why reschedule a disabled tasklet?
Date

Hi all,

Attached is a patch i use to get my sparc LX to boot (against 2.4.14).
Without it the SUN does not work. I'm not sure if this is the right way to
fix it, but i fail to see way softirq should be raised again if there are no
enabled tasklets left. Am i missing anything?

The SUN got in a deadlock. The schedule() function didn't return
execution to spawn_ksoftirqd, because ksoftirqd kept on doing do_softirqd to
handle a disabled tasklet (sun_kbd_bh).

Both my i386 and sun4m seem to run stable with this patch.

me



diff -ruN linux-2.4.14/kernel/softirq.c linux/kernel/softirq.c
--- linux-2.4.14/kernel/softirq.c Thu Nov 8 15:58:24 2001
+++ linux/kernel/softirq.c Thu Nov 8 15:59:40 2001
@@ -193,10 +193,9 @@
if (!test_and_clear_bit(TASKLET_STATE_SCHED, &t->state))
BUG();
t->func(t->data);
- tasklet_unlock(t);
- continue;
}
tasklet_unlock(t);
+ continue;
}

local_irq_disable();
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 13:13    [W:0.183 / U:0.060 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site