From: David Daney <david.daney@xxxxxxxxxx> commit 97ce2c88f9ad42e3c60a9beb9fca87abf3639faa breaks MIPS. The jump-lable 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 mm_init(). As things stand, we cannot be calling jump_label_init() until after mm_init() completes, so we move the call down to satisfy this constraint. Signed-off-by: David Daney <david.daney@xxxxxxxxxx> --- init/main.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/init/main.c b/init/main.c index 217ed23..8c6a155 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() @@ -526,6 +524,8 @@ asmlinkage void __init start_kernel(void) trap_init(); mm_init(); + jump_label_init(); + /* * Set up the scheduler prior starting any interrupts (such as the * timer interrupt). Full topology setup happens at smp_init() -- 1.7.2.3