[PATCH] ftrace: powerpc clean ups
flat view
STALE6726d
From: Steven Rostedt <rostedt@goodmis.org>
Date: 2008-05-22 18:31:27
Also in:
lkml
This patch cleans up the ftrace code in PowerPC based on the comments from
Michael Ellerman.
Signed-off-by: Steven Rostedt <redacted>
---
-0700 |binary
arch/powerpc/kernel/entry_32.S | 11 ++---------
arch/powerpc/kernel/ftrace.c | 8 +++++++-
arch/powerpc/kernel/ppc_ksyms.c | 5 +++++
arch/powerpc/kernel/setup_32.c | 5 -----
arch/powerpc/kernel/setup_64.c | 5 -----
include/asm-powerpc/ftrace.h | 6 ++++++
6 files changed, 20 insertions(+), 20 deletions(-)
Index: linux-tip.git/arch/powerpc/kernel/entry_32.S
===================================================================--- linux-tip.git.orig/arch/powerpc/kernel/entry_32.S 2008-05-22 09:17:51.000000000 -0700
+++ linux-tip.git/arch/powerpc/kernel/entry_32.S 2008-05-22 09:18:21.000000000 -0700@@ -1129,18 +1129,11 @@ _GLOBAL(_mcount) stw r5, 8(r1) LOAD_REG_ADDR(r5, ftrace_trace_function) -#if 0 - mtctr r3 - mr r1, r5 - bctrl -#endif lwz r5,0(r5) -#if 1 + mtctr r5 bctrl -#else - bl ftrace_stub -#endif + nop lwz r6, 8(r1)
Index: linux-tip.git/arch/powerpc/kernel/ftrace.c ===================================================================
--- linux-tip.git.orig/arch/powerpc/kernel/ftrace.c 2008-05-22 09:19:12.000000000 -0700
+++ linux-tip.git/arch/powerpc/kernel/ftrace.c 2008-05-22 09:29:45.000000000 -0700@@ -51,10 +51,16 @@ notrace unsigned char *ftrace_call_repla { static unsigned int op; + /* + * It would be nice to just use create_function_call, but that will + * update the code itself. Here we need to just return the + * instruction that is going to be modified, without modifying the + * code. + */ addr = GET_ADDR(addr); /* Set to "bl addr" */ - op = 0x48000001 | (ftrace_calc_offset(ip, addr) & 0x03fffffe); + op = 0x48000001 | (ftrace_calc_offset(ip, addr) & 0x03fffffc); /* * No locking needed, this must be called via kstop_machine
Index: linux-tip.git/arch/powerpc/kernel/ppc_ksyms.c ===================================================================
--- linux-tip.git.orig/arch/powerpc/kernel/ppc_ksyms.c 2008-05-22 09:37:28.000000000 -0700
+++ linux-tip.git/arch/powerpc/kernel/ppc_ksyms.c 2008-05-22 11:07:36.000000000 -0700@@ -43,6 +43,7 @@ #include <asm/div64.h> #include <asm/signal.h> #include <asm/dcr.h> +#include <asm/ftrace.h> #ifdef CONFIG_PPC32 extern void transfer_to_handler(void);
@@ -68,6 +69,10 @@ EXPORT_SYMBOL(single_step_exception); EXPORT_SYMBOL(sys_sigreturn); #endif +#ifdef CONFIG_FTRACE +EXPORT_SYMBOL(_mcount); +#endif + EXPORT_SYMBOL(strcpy); EXPORT_SYMBOL(strncpy); EXPORT_SYMBOL(strcat);
Index: linux-tip.git/arch/powerpc/kernel/setup_64.c ===================================================================
--- linux-tip.git.orig/arch/powerpc/kernel/setup_64.c 2008-05-22 09:35:30.000000000 -0700
+++ linux-tip.git/arch/powerpc/kernel/setup_64.c 2008-05-22 11:25:30.000000000 -0700@@ -85,11 +85,6 @@ struct ppc64_caches ppc64_caches = { }; EXPORT_SYMBOL_GPL(ppc64_caches); -#ifdef CONFIG_FTRACE -extern void _mcount(void); -EXPORT_SYMBOL(_mcount); -#endif - /* * These are used in binfmt_elf.c to put aux entries on the stack * for each elf executable being started.
Index: linux-tip.git/include/asm-powerpc/ftrace.h ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-tip.git/include/asm-powerpc/ftrace.h 2008-05-22 09:39:39.000000000 -0700@@ -0,0 +1,6 @@ +#ifndef _ASM_POWERPC_FTRACE +#define _ASM_POWERPC_FTRACE + +extern void _mcount(void); + +#endif
Index: linux-tip.git/arch/powerpc/kernel/setup_32.c ===================================================================
--- linux-tip.git.orig/arch/powerpc/kernel/setup_32.c 2008-05-22 09:35:30.000000000 -0700
+++ linux-tip.git/arch/powerpc/kernel/setup_32.c 2008-05-22 11:25:39.000000000 -0700@@ -47,11 +47,6 @@ #include <asm/kgdb.h> #endif -#ifdef CONFIG_FTRACE -extern void _mcount(void); -EXPORT_SYMBOL(_mcount); -#endif - extern void bootx_init(unsigned long r4, unsigned long phys); int boot_cpuid;