|
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();
}
|