Messages in this thread Patch in this message | | | From | Mathijs Mohlmann <> | Subject | [PATCH]: why reschedule a disabled tasklet? | Date | Thu, 8 Nov 2001 17:36:08 +0100 |
| |
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/
| |