Message ID | 1456324115-21144-9-git-send-email-mpe@ellerman.id.au (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
On 25/02/16 01:28, Michael Ellerman wrote: > From: Torsten Duwe <duwe@lst.de> > > Convert powerpc's arch_ftrace_update_code() from its own version to use > the generic default functionality (without stop_machine -- our > instructions are properly aligned and the replacements atomic). > > With this we gain error checking and the much-needed function_trace_op > handling. > > Signed-off-by: Torsten Duwe <duwe@suse.de> > Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> > --- > arch/powerpc/kernel/ftrace.c | 17 +++++------------ > 1 file changed, 5 insertions(+), 12 deletions(-) > > diff --git a/arch/powerpc/kernel/ftrace.c b/arch/powerpc/kernel/ftrace.c > index c6408a399ac6..56e5bd53c323 100644 > --- a/arch/powerpc/kernel/ftrace.c > +++ b/arch/powerpc/kernel/ftrace.c > @@ -527,20 +527,13 @@ void ftrace_replace_code(int enable) > } > } > > +/* > + * Use the default ftrace_modify_all_code, but without > + * stop_machine(). > + */ > void arch_ftrace_update_code(int command) > { > - if (command & FTRACE_UPDATE_CALLS) > - ftrace_replace_code(1); > - else if (command & FTRACE_DISABLE_CALLS) > - ftrace_replace_code(0); > - > - if (command & FTRACE_UPDATE_TRACE_FUNC) > - ftrace_update_ftrace_func(ftrace_trace_function); > - > - if (command & FTRACE_START_FUNC_RET) > - ftrace_enable_ftrace_graph_caller(); > - else if (command & FTRACE_STOP_FUNC_RET) > - ftrace_disable_ftrace_graph_caller(); > + ftrace_modify_all_code(command); > } > > int __init ftrace_dyn_arch_init(void) Reviewed-by: Balbir Singh <bsingharora@gmail.com> Balbir
diff --git a/arch/powerpc/kernel/ftrace.c b/arch/powerpc/kernel/ftrace.c index c6408a399ac6..56e5bd53c323 100644 --- a/arch/powerpc/kernel/ftrace.c +++ b/arch/powerpc/kernel/ftrace.c @@ -527,20 +527,13 @@ void ftrace_replace_code(int enable) } } +/* + * Use the default ftrace_modify_all_code, but without + * stop_machine(). + */ void arch_ftrace_update_code(int command) { - if (command & FTRACE_UPDATE_CALLS) - ftrace_replace_code(1); - else if (command & FTRACE_DISABLE_CALLS) - ftrace_replace_code(0); - - if (command & FTRACE_UPDATE_TRACE_FUNC) - ftrace_update_ftrace_func(ftrace_trace_function); - - if (command & FTRACE_START_FUNC_RET) - ftrace_enable_ftrace_graph_caller(); - else if (command & FTRACE_STOP_FUNC_RET) - ftrace_disable_ftrace_graph_caller(); + ftrace_modify_all_code(command); } int __init ftrace_dyn_arch_init(void)