machine check exception
Anton Blanchard
anton at samba.org
Wed Feb 12 10:26:06 EST 2003
Hi,
> Thanks...these things are next to impossible to test. Nice you have a
> test case (I think :)).
Not so nice from my perspective :)
> BTW, I pulled your bk today (2.5.60) and noticed that I get a
> decrementer before time_init. Some init order change? I haven't had
> time to look just yet. Easy enough to hack around at the moment....
Yep, known bug. Hopefully Linus merged the fix.
--
Date: Tue, 11 Feb 2003 01:19:05 -0800
From: Andrew Morton <akpm at digeo.com>
To: Linus Torvalds <torvalds at transmeta.com>,
Anton Blanchard <anton at samba.org>
Subject: sched_init enables interrupts too early
wake_up_forked_process() unconditionally enables interrupts. It is called
from sched_init(). Enabling interrupts that early makes Anton's ppc64
machine lock up.
I tried going back to just wake_up_process() but the kernel didn't start.
diff -puN kernel/sched.c~sched_init-fix kernel/sched.c
--- 25/kernel/sched.c~sched_init-fix 2003-02-11 01:09:51.000000000 -0800
+++ 25-akpm/kernel/sched.c 2003-02-11 01:12:44.000000000 -0800
@@ -519,7 +519,8 @@ int wake_up_state(task_t *p, unsigned in
*/
void wake_up_forked_process(task_t * p)
{
- runqueue_t *rq = this_rq_lock();
+ unsigned long flags;
+ runqueue_t *rq = task_rq_lock(current, &flags);
p->state = TASK_RUNNING;
if (!rt_task(p)) {
@@ -535,7 +536,7 @@ void wake_up_forked_process(task_t * p)
set_task_cpu(p, smp_processor_id());
activate_task(p, rq);
- rq_unlock(rq);
+ task_rq_unlock(rq, &flags);
}
/*
** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/
More information about the Linuxppc64-dev
mailing list