summaryrefslogtreecommitdiff
path: root/init
diff options
context:
space:
mode:
authorRobert Love <rml@tech9.net>2002-03-04 23:19:34 -0800
committerLinus Torvalds <torvalds@penguin.transmeta.com>2002-03-04 23:19:34 -0800
commita2329c276c6dd99c63fcecedeb3cb04111bcd074 (patch)
tree19d5188985921013eac91b35223b5e3f5a7afb57 /init
parentecc0b50d893f9983a9f53d4714fad3700b68037a (diff)
[PATCH] Re: [PATCH] idle task preempt_count fix
On SMP systems, preempt_count is erroneously set to 1 for idle task's on all CPU besides CPU0. This patch sets preempt_count properly. Robert Love
Diffstat (limited to 'init')
-rw-r--r--init/main.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/init/main.c b/init/main.c
index 524abe909c64..41189a1290bc 100644
--- a/init/main.c
+++ b/init/main.c
@@ -335,7 +335,6 @@ asmlinkage void __init start_kernel(void)
* Interrupts are still disabled. Do necessary setups, then
* enable them
*/
- lock_kernel();
printk(linux_banner);
setup_arch(&command_line);
setup_per_cpu_areas();
@@ -402,6 +401,9 @@ asmlinkage void __init start_kernel(void)
printk("POSIX conformance testing by UNIFIX\n");
init_idle(current, smp_processor_id());
+
+ lock_kernel();
+
/*
* We count on the initial thread going ok
* Like idlers init is an unlocked kernel thread, which will