I think this bit is prematurely enabling interrupts in sched_init:
======== kernel/sched.c 1.1..1.156 ========
D 1.156 03/02/09 21:32:34-08:00 [email protected] 179 178
32/24/2466
P kernel/sched.c
C Make "try_to_wake_up()" care about the state of the process woken up.
C
C This simplifies "default_wake_function()", and makes it possible for
C signal handling to wake up only stopped tasks without races.
C
C It also makes it impossible to wake up already running processes, which
C means that the early boot sequence has to use the (much more correct)
C "wake_up_forked_process()" to put the initial task on the runqueues.
The problem is that wake_up_forked_process() does an rq_unlock(rq) which
is a spin_unlock_irq.
-todd
On Wed, 2003-02-12 at 08:44, Todd Inglett wrote:
> The problem is that wake_up_forked_process() does an rq_unlock(rq) which
> is a spin_unlock_irq.
I believe this is fixed in Linus's bitkeeper.
Robert Love