aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/kernel/perf_callchain.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sh/kernel/perf_callchain.c')
-rw-r--r--arch/sh/kernel/perf_callchain.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/arch/sh/kernel/perf_callchain.c b/arch/sh/kernel/perf_callchain.c
index 1d6dbce7a3bc..00143f3dd196 100644
--- a/arch/sh/kernel/perf_callchain.c
+++ b/arch/sh/kernel/perf_callchain.c
@@ -14,11 +14,6 @@
14#include <asm/unwinder.h> 14#include <asm/unwinder.h>
15#include <asm/ptrace.h> 15#include <asm/ptrace.h>
16 16
17static inline void callchain_store(struct perf_callchain_entry *entry, u64 ip)
18{
19 if (entry->nr < PERF_MAX_STACK_DEPTH)
20 entry->ip[entry->nr++] = ip;
21}
22 17
23static void callchain_warning(void *data, char *msg) 18static void callchain_warning(void *data, char *msg)
24{ 19{
@@ -39,7 +34,7 @@ static void callchain_address(void *data, unsigned long addr, int reliable)
39 struct perf_callchain_entry *entry = data; 34 struct perf_callchain_entry *entry = data;
40 35
41 if (reliable) 36 if (reliable)
42 callchain_store(entry, addr); 37 perf_callchain_store(entry, addr);
43} 38}
44 39
45static const struct stacktrace_ops callchain_ops = { 40static const struct stacktrace_ops callchain_ops = {
@@ -52,8 +47,8 @@ static const struct stacktrace_ops callchain_ops = {
52static void 47static void
53perf_callchain_kernel(struct pt_regs *regs, struct perf_callchain_entry *entry) 48perf_callchain_kernel(struct pt_regs *regs, struct perf_callchain_entry *entry)
54{ 49{
55 callchain_store(entry, PERF_CONTEXT_KERNEL); 50 perf_callchain_store(entry, PERF_CONTEXT_KERNEL);
56 callchain_store(entry, regs->pc); 51 perf_callchain_store(entry, regs->pc);
57 52
58 unwind_stack(NULL, regs, NULL, &callchain_ops, entry); 53 unwind_stack(NULL, regs, NULL, &callchain_ops, entry);
59} 54}