On 12/14/2011 09:54 AM, David Daney wrote:
From: David Daney<david.daney@xxxxxxxxxx> commit 97ce2c88f9ad42e3c60a9beb9fca87abf3639faa (jump-label: initialize jump-label subsystem much earlier) breaks MIPS. The jump-label initialization does I-Cache flushing after modifying code. On MIPS this is done by calling through the function pointer flush_icache_range(). This function pointer is initialized by trap_init(). As things stand, we cannot be calling jump_label_init() until after trap_init() completes, so we move the call down to satisfy this constraint. Signed-off-by: David Daney<david.daney@xxxxxxxxxx>
NACK to myself: I now have a patch for MIPS that makes this one unnecessary. David Daney
--- Sorry for spamming this out again, but Sergei keeps flagging my poor grammar. Difference from v2: Fix grammar and spelling issues in changelog. No change to the patch. Difference from v1: Move jump_label_init() up one so it is now before mm_init() instead of after it. init/main.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/init/main.c b/init/main.c index 217ed23..68ab12b 100644 --- a/init/main.c +++ b/init/main.c @@ -513,8 +513,6 @@ asmlinkage void __init start_kernel(void) __stop___param - __start___param, &unknown_bootoption); - jump_label_init(); - /* * These use large bootmem allocations and must precede * kmem_cache_init() @@ -524,6 +522,7 @@ asmlinkage void __init start_kernel(void) vfs_caches_init_early(); sort_main_extable(); trap_init(); + jump_label_init(); mm_init(); /*