Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Kernel v2.4.11 /init/main.c

Filename:/init/main.c
Lines Added:26
Lines Deleted:7
Also changed in: (Previous) 2.4.11-pre6  2.4.11-pre5  2.4.11-pre4  2.4.11-pre3  2.4.11-pre2  2.4.10-ac10 
(Following) 2.4.12-ac1  2.4.12-ac2  2.4.12-ac3  2.4.12-ac4  2.4.12-ac5  2.4.12-ac6 

Location
[  2.4.11
  [  init
     o  main.c

Patch

diff -u --recursive --new-file v2.4.10/linux/init/main.c linux/init/main.c
--- v2.4.10/linux/init/main.c   Sun Sep 23 11:41:01 2001
+++ linux/init/main.c   Sat Oct  6 08:49:16 2001
@@ -65,7 +65,7 @@
 extern int irda_device_init(void);
 #endif
 
-#ifdef CONFIG_X86_IO_APIC
+#ifdef CONFIG_X86_LOCAL_APIC
 #include <asm/smp.h>
 #endif
 
@@ -94,7 +94,6 @@
 extern void sysctl_init(void);
 extern void signals_init(void);
 extern int init_pcmcia_ds(void);
-extern void net_notifier_init(void);
 
 extern void free_initmem(void);
 
@@ -258,9 +257,15 @@
    { "cciss/c0d14p",0x68E0 },
    { "cciss/c0d15p",0x68F0 },
 #endif
-#ifdef CONFIG_NFTL
    { "nftla", 0x5d00 },
-#endif
+   { "nftlb", 0x5d10 },
+   { "nftlc", 0x5d20 },
+   { "nftld", 0x5d30 },
+   { "ftla", 0x2c00 },
+   { "ftlb", 0x2c08 },
+   { "ftlc", 0x2c10 },
+   { "ftld", 0x2c18 },
+   { "mtdblock", 0x1f00 },
    { NULL, 0 }
 };
 
@@ -477,9 +482,11 @@
 extern void setup_arch(char **);
 extern void cpu_idle(void);
 
+unsigned long wait_init_idle;
+
 #ifndef CONFIG_SMP
 
-#ifdef CONFIG_X86_IO_APIC
+#ifdef CONFIG_X86_LOCAL_APIC
 static void __init smp_init(void)
 {
    APIC_init_uniprocessor();
@@ -490,14 +497,26 @@
 
 #else
 
+
 /* Called by boot processor to activate the rest. */
 static void __init smp_init(void)
 {
    /* 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
 
@@ -519,7 +538,7 @@
 /*
  *   Activate the first processor.
  */
- 
+
 asmlinkage void __init start_kernel(void)
 {
    char * command_line;


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.