Re: 2.5.70 dies on alpha-SMP

Ivan Kokshaysky (ink@jurassic.park.msu.ru)
Tue, 27 May 2003 18:05:50 +0400


On Tue, May 27, 2003 at 03:12:58PM +0200, T. Weyergraf wrote:
> the stock 2.5.70 dies early upon boot on my alpha UP2000
> ( dual EV67, DP264 vector ). It happens, after the kernel
> tries to start the second CPU. The error happens regardless
> of the compilers i tried ( gcc 3.2.3 and 2.95.4 ).

Does this help?

Ivan.

--- 2.5/arch/alpha/kernel/smp.c Wed May 21 15:20:27 2003
+++ linux/arch/alpha/kernel/smp.c Wed May 21 15:27:23 2003
@@ -417,12 +417,7 @@ fork_by_hand(void)
/* Don't care about the contents of regs since we'll never
reschedule the forked task. */
struct pt_regs regs;
- int pid;
- pid = do_fork(CLONE_VM|CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
- if (pid < 0)
- return NULL;
-
- return find_task_by_pid (pid);
+ return copy_process(CLONE_VM|CLONE_IDLETASK, 0, &regs, 0, NULL, NULL);
}

/*
@@ -441,8 +436,10 @@ smp_boot_one_cpu(int cpuid)
wish. We can't use kernel_thread since we must avoid
rescheduling the child. */
idle = fork_by_hand();
- if (!idle)
+ if (IS_ERR(idle))
panic("failed fork for CPU %d", cpuid);
+
+ wake_up_forked_process(idle);

init_idle(idle, cpuid);
unhash_process(idle);
-
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/