From: Kenn H. <ke...@us...> - 2002-06-05 21:55:08
|
Update of /cvsroot/linux-vax/kernel-2.5/init In directory usw-pr-cvs1:/tmp/cvs-serv31851/init Modified Files: main.c Log Message: Merge with Linus' 2.5.2 release Index: main.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.5/init/main.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- main.c 31 May 2002 01:58:39 -0000 1.3 +++ main.c 5 Jun 2002 21:55:04 -0000 1.4 @@ -316,18 +316,9 @@ /* Get other processors into their bootup holding patterns. */ smp_boot_cpus(); wait_init_idle = cpu_online_map; - clear_bit(current->processor, &wait_init_idle); /* Don't wait on me! */ smp_threads_ready=1; smp_commence(); - - /* Wait for the other cpus to set up their idle processes */ - printk("Waiting on wait_init_idle (map = 0x%lx)\n", wait_init_idle); - while (wait_init_idle) { - cpu_relax(); - barrier(); - } - printk("All processors have done init_idle\n"); } #endif @@ -343,7 +334,6 @@ { kernel_thread(init, NULL, CLONE_FS | CLONE_FILES | CLONE_SIGNAL); unlock_kernel(); - current->need_resched = 1; cpu_idle(); } @@ -432,6 +422,16 @@ * make syscalls (and thus be locked). */ smp_init(); + + /* + * Finally, we wait for all other CPU's, and initialize this + * thread that will become the idle thread for the boot CPU. + * After this, the scheduler is fully initialized, and we can + * start creating and running new threads. + */ + init_idle(); + + /* Do the rest non-__init'ed, we're now alive */ rest_init(); } |