On 05/14/2010 07:43 PM, Wu Zhangjin wrote:
On Fri, 2010-05-14 at 10:15 -0700, David Daney wrote:
On 05/14/2010 04:08 AM, Wu Zhangjin wrote:
From: Wu Zhangjin<wuzhangjin@xxxxxxxxx>
With the help of uasm, this patch encodes the instructions of dynamic
Function Tracer in ftrace_dyn_arch_init() when initializing it.
[...]
+#include<asm/uasm.h>
All of uasm is _cpuinit, I haven't checked everything, but are you sure
you aren't calling if from non-_cpuinit code?
The calling tree looks like this:
start_kernel() // __init
--> ftrace_init() // __init
--> ftrace_dyn_arch_init() // __init
--> ftrace_dyn_arch_init_insns() // inline
--> uasm_*/UASM_*
Nobody else will call uasm_*/UASM_* in this patch, I have checked the
uasm usage in arch/mips/kernel/traps.c. Seems the usam functions are
also called in the __init *set_except_vector(). so, it will also be safe
in this patch, is it?
Yes, that seems good to me. I just wanted to make sure that this wasn't
being called from non-init code.
David Daney