aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/ftrace.c
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2014-09-17 03:07:03 -0400
committerMichael Ellerman <mpe@ellerman.id.au>2014-11-09 17:59:27 -0500
commit7d56c65a6ff9065c459fc63c509950d8ea66e00c (patch)
tree77fac333d96da3f1791de1c27b5fbfede304c560 /arch/powerpc/kernel/ftrace.c
parent6e4c632cdff7bf0238a2543dfe98bd1ad40313c2 (diff)
powerpc/ftrace: Remove mod_return_to_handler
mod_return_to_handler is the same as return_to_handler, except it handles the change of the TOC (r2). Add this into return_to_handler and remove mod_return_to_handler. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/kernel/ftrace.c')
-rw-r--r--arch/powerpc/kernel/ftrace.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/arch/powerpc/kernel/ftrace.c b/arch/powerpc/kernel/ftrace.c
index 390311c0f03d..abf79213c356 100644
--- a/arch/powerpc/kernel/ftrace.c
+++ b/arch/powerpc/kernel/ftrace.c
@@ -510,10 +510,6 @@ int ftrace_disable_ftrace_graph_caller(void)
510} 510}
511#endif /* CONFIG_DYNAMIC_FTRACE */ 511#endif /* CONFIG_DYNAMIC_FTRACE */
512 512
513#ifdef CONFIG_PPC64
514extern void mod_return_to_handler(void);
515#endif
516
517/* 513/*
518 * Hook the return address and push it in the stack of return addrs 514 * Hook the return address and push it in the stack of return addrs
519 * in current thread info. 515 * in current thread info.
@@ -523,7 +519,7 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr)
523 unsigned long old; 519 unsigned long old;
524 int faulted; 520 int faulted;
525 struct ftrace_graph_ent trace; 521 struct ftrace_graph_ent trace;
526 unsigned long return_hooker = (unsigned long)&return_to_handler; 522 unsigned long return_hooker;
527 523
528 if (unlikely(ftrace_graph_is_dead())) 524 if (unlikely(ftrace_graph_is_dead()))
529 return; 525 return;
@@ -531,13 +527,7 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr)
531 if (unlikely(atomic_read(&current->tracing_graph_pause))) 527 if (unlikely(atomic_read(&current->tracing_graph_pause)))
532 return; 528 return;
533 529
534#ifdef CONFIG_PPC64 530 return_hooker = ppc_function_entry(return_to_handler);
535 /* non core kernel code needs to save and restore the TOC */
536 if (REGION_ID(self_addr) != KERNEL_REGION_ID)
537 return_hooker = (unsigned long)&mod_return_to_handler;
538#endif
539
540 return_hooker = ppc_function_entry((void *)return_hooker);
541 531
542 /* 532 /*
543 * Protect against fault, even if it shouldn't 533 * Protect against fault, even if it shouldn't