init/main.c: Execute lockdep_init() as early as possible
This patch fixes a lockdep warning on ARM platforms: [ 0.000000] WARNING: lockdep init error! Arch code didn't call lockdep_init() early enough? [ 0.000000] Call stack leading to lockdep invocation was: [ 0.000000] [<c00164bc>] save_stack_trace_tsk+0x0/0x90 [ 0.000000] [<ffffffff>] 0xffffffff The warning is caused by printk inside smp_setup_processor_id(). It is safe to do this because lockdep_init() doesn't depend on smp_setup_processor_id(), so improve things that printk can be called as early as possible without lockdep complaint. Signed-off-by: Ming Lei <tom.leiming@gmail.com> Reviewed-by: Yong Zhang <yong.zhang0@gmail.com> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Andrew Morton <akpm@linux-foundation.org> Link: http://lkml.kernel.org/r/1321508072-23853-1-git-send-email-tom.leiming@gmail.com Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
d3d03d4fc5
commit
73839c5b2e
1 changed files with 1 additions and 2 deletions
|
@ -469,13 +469,12 @@ asmlinkage void __init start_kernel(void)
|
||||||
char * command_line;
|
char * command_line;
|
||||||
extern const struct kernel_param __start___param[], __stop___param[];
|
extern const struct kernel_param __start___param[], __stop___param[];
|
||||||
|
|
||||||
smp_setup_processor_id();
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Need to run as early as possible, to initialize the
|
* Need to run as early as possible, to initialize the
|
||||||
* lockdep hash:
|
* lockdep hash:
|
||||||
*/
|
*/
|
||||||
lockdep_init();
|
lockdep_init();
|
||||||
|
smp_setup_processor_id();
|
||||||
debug_objects_early_init();
|
debug_objects_early_init();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in a new issue