]> err.no Git - linux-2.6/blobdiff - init/main.c
[NETFILTER]: Fix div64_64 in ipt_connbytes
[linux-2.6] / init / main.c
index 40bf367ffdf19f32e6c4a14a05ea366c3a0213a6..c9c311cf1771362a349c177e5662140640370e36 100644 (file)
@@ -51,6 +51,7 @@
 #include <asm/io.h>
 #include <asm/bugs.h>
 #include <asm/setup.h>
+#include <asm/sections.h>
 
 /*
  * This is one of the first .c files built. Error out early
@@ -323,8 +324,6 @@ static void __init setup_per_cpu_areas(void)
 {
        unsigned long size, i;
        char *ptr;
-       /* Created by linker magic */
-       extern char __per_cpu_start[], __per_cpu_end[];
 
        /* Copy section for each CPU (we discard the original) */
        size = ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES);
@@ -383,6 +382,13 @@ static void noinline rest_init(void)
        numa_default_policy();
        unlock_kernel();
        preempt_enable_no_resched();
+
+       /*
+        * The boot idle thread must execute schedule()
+        * at least one to get things moving:
+        */
+       schedule();
+
        cpu_idle();
 } 
 
@@ -490,6 +496,7 @@ asmlinkage void __init start_kernel(void)
        vfs_caches_init_early();
        mem_init();
        kmem_cache_init();
+       setup_per_cpu_pageset();
        numa_policy_init();
        if (late_time_init)
                late_time_init();