Messages in this thread | | | Date | Mon, 22 Mar 1999 16:07:00 +0100 (CET) | From | Andrea Arcangeli <> | Subject | Re: 3 Ooopses in 2.2.3 |
| |
On Tue, 23 Mar 1999, Anton Blanchard wrote:
>--- vger/linux/kernel/softirq.c 1999/01/02 16:51:08 1.17 >+++ /cvsroot/vger/linux/kernel/softirq.c 1999/03/15 19:57:56 1.18 >@@ -64,6 +64,7 @@ > run_bottom_halves(); > hardirq_endlock(cpu); > } >+ __cli(); > softirq_endlock(cpu);
In the irq a cli will be a nono because we are just returning to usermode or whatever and so we'll just restore the interrupts state of the previous level. Maybe you want to avoid to get a new nested irq that may start a new bh handling inside the envinronment of the first irq?
A __cli() in schedule() will be for sure a nono. But if we __cli() there we can at least change the:
spin_lock_irq(&runqueue_lock);
to
spin_lock(&runqueue_lock);
in schedule().
It will be interesting to know if it was really a stack depth problem...
Andrea Arcangeli
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |