aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/ftrace.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc64/kernel/ftrace.c')
-rw-r--r--arch/sparc64/kernel/ftrace.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/sparc64/kernel/ftrace.c b/arch/sparc64/kernel/ftrace.c
index c17373195b1e..4298d0aee713 100644
--- a/arch/sparc64/kernel/ftrace.c
+++ b/arch/sparc64/kernel/ftrace.c
@@ -5,6 +5,8 @@
5#include <linux/init.h> 5#include <linux/init.h>
6#include <linux/list.h> 6#include <linux/list.h>
7 7
8#include <asm/ftrace.h>
9
8static const u32 ftrace_nop = 0x01000000; 10static const u32 ftrace_nop = 0x01000000;
9 11
10notrace unsigned char *ftrace_nop_replace(void) 12notrace unsigned char *ftrace_nop_replace(void)
@@ -60,9 +62,9 @@ ftrace_modify_code(unsigned long ip, unsigned char *old_code,
60notrace int ftrace_update_ftrace_func(ftrace_func_t func) 62notrace int ftrace_update_ftrace_func(ftrace_func_t func)
61{ 63{
62 unsigned long ip = (unsigned long)(&ftrace_call); 64 unsigned long ip = (unsigned long)(&ftrace_call);
63 unsigned char old[4], *new; 65 unsigned char old[MCOUNT_INSN_SIZE], *new;
64 66
65 memcpy(old, &ftrace_call, 4); 67 memcpy(old, &ftrace_call, MCOUNT_INSN_SIZE);
66 new = ftrace_call_replace(ip, (unsigned long)func); 68 new = ftrace_call_replace(ip, (unsigned long)func);
67 return ftrace_modify_code(ip, old, new); 69 return ftrace_modify_code(ip, old, new);
68} 70}
@@ -71,13 +73,13 @@ notrace int ftrace_mcount_set(unsigned long *data)
71{ 73{
72 unsigned long ip = (long)(&mcount_call); 74 unsigned long ip = (long)(&mcount_call);
73 unsigned long *addr = data; 75 unsigned long *addr = data;
74 unsigned char old[4], *new; 76 unsigned char old[MCOUNT_INSN_SIZE], *new;
75 77
76 /* 78 /*
77 * Replace the mcount stub with a pointer to the 79 * Replace the mcount stub with a pointer to the
78 * ip recorder function. 80 * ip recorder function.
79 */ 81 */
80 memcpy(old, &mcount_call, 4); 82 memcpy(old, &mcount_call, MCOUNT_INSN_SIZE);
81 new = ftrace_call_replace(ip, *addr); 83 new = ftrace_call_replace(ip, *addr);
82 *addr = ftrace_modify_code(ip, old, new); 84 *addr = ftrace_modify_code(ip, old, new);
83 85