X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=init%2Fmain.c;h=0eb1c7463fe4d08c3012ee66cb486c72122a26d5;hb=702ed6ef375c19d65f2eeeefd3851476f2c4cee4;hp=e8d080cab443750f7360d50bd32aa0c7644a6a4e;hpb=73c279927f89561ecb45b2dfdf9314bafcfd9f67;p=mv-sheeva.git diff --git a/init/main.c b/init/main.c index e8d080cab44..0eb1c7463fe 100644 --- a/init/main.c +++ b/init/main.c @@ -423,7 +423,7 @@ static void __init setup_command_line(char *command_line) * gcc-3.4 accidentally inlines this function, so use noinline. */ -static void noinline rest_init(void) +static void noinline __init_refok rest_init(void) __releases(kernel_lock) { int pid; @@ -436,15 +436,16 @@ static void noinline rest_init(void) /* * The boot idle thread must execute schedule() - * at least one to get things moving: + * at least once to get things moving: */ + init_idle_bootup_task(current); preempt_enable_no_resched(); schedule(); preempt_disable(); /* Call into cpu_idle with preempt disabled */ cpu_idle(); -} +} /* Check for early params. */ static int __init do_early_param(char *param, char *val) @@ -801,6 +802,7 @@ static int __init kernel_init(void * unused) */ init_pid_ns.child_reaper = current; + __set_special_pids(1, 1); cad_pid = task_pid(current); smp_prepare_cpus(max_cpus);