diff options
Diffstat (limited to 'init/main.c')
-rw-r--r-- | init/main.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/init/main.c b/init/main.c index d324801729ba..c9c311cf1771 100644 --- a/init/main.c +++ b/init/main.c @@ -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(); } |