diff --git a/arch/sw_64/kernel/ftrace.c b/arch/sw_64/kernel/ftrace.c index 3d99f723dced5c5455039330f64cb7c4ebdf627f..fb25ffe3dbdaf4f26bf4389e63d37fd1aaaa754b 100644 --- a/arch/sw_64/kernel/ftrace.c +++ b/arch/sw_64/kernel/ftrace.c @@ -100,10 +100,12 @@ void arch_ftrace_update_code(int command) int __init ftrace_dyn_arch_init(void) { - init_thread_info.dyn_ftrace_addr = FTRACE_ADDR; + struct thread_info *ti = task_thread_info(&init_task); + + ti->dyn_ftrace_addr = FTRACE_ADDR; #ifdef CONFIG_DYNAMIC_FTRACE_WITH_REGS - init_thread_info.dyn_ftrace_regs_addr = FTRACE_REGS_ADDR; + ti->dyn_ftrace_regs_addr = FTRACE_REGS_ADDR; #endif return 0; } diff --git a/arch/sw_64/kernel/head.S b/arch/sw_64/kernel/head.S index d5975a971b86309c587ff4c6a8898aa496235ad1..c855d31de7154097d6aa059f2a9e0bb688adf6bc 100644 --- a/arch/sw_64/kernel/head.S +++ b/arch/sw_64/kernel/head.S @@ -40,8 +40,10 @@ __start: call $26, relocate_kernel ldl $29, 0($30) addl $29, $0, $29 + addl $8, $0, $8 + ldi $30, 8($30) /* Repoint the sp into the new kernel image */ - ldi $30, ASM_THREAD_SIZE($8) + addl $30, $0, $30 #endif /* ... and then we can start the kernel. */ call $26, sw64_start_kernel diff --git a/arch/sw_64/kernel/relocate.c b/arch/sw_64/kernel/relocate.c index 792ee1a9c2b1a261706e1e339c7c6ff85e5de20d..ebdf7d894805e8f2c0a1853d853d5d2ef8bf6c09 100644 --- a/arch/sw_64/kernel/relocate.c +++ b/arch/sw_64/kernel/relocate.c @@ -239,9 +239,6 @@ unsigned int __init relocate_kernel(void) if (plat_post_relocation(offset)) goto out; - /* The current thread is now within the relocated image */ - __current_thread_info = RELOCATED(&init_thread_union); - /* Return the new kernel's offset */ return offset; }