diff options
Diffstat (limited to 'include/trace/ftrace.h')
| -rw-r--r-- | include/trace/ftrace.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h index 0804cd594803..f31bb8b9777c 100644 --- a/include/trace/ftrace.h +++ b/include/trace/ftrace.h | |||
| @@ -764,6 +764,7 @@ ftrace_profile_templ_##call(struct ftrace_event_call *event_call, \ | |||
| 764 | struct ftrace_raw_##call *entry; \ | 764 | struct ftrace_raw_##call *entry; \ |
| 765 | u64 __addr = 0, __count = 1; \ | 765 | u64 __addr = 0, __count = 1; \ |
| 766 | unsigned long irq_flags; \ | 766 | unsigned long irq_flags; \ |
| 767 | struct pt_regs *__regs; \ | ||
| 767 | int __entry_size; \ | 768 | int __entry_size; \ |
| 768 | int __data_size; \ | 769 | int __data_size; \ |
| 769 | int rctx; \ | 770 | int rctx; \ |
| @@ -784,8 +785,11 @@ ftrace_profile_templ_##call(struct ftrace_event_call *event_call, \ | |||
| 784 | \ | 785 | \ |
| 785 | { assign; } \ | 786 | { assign; } \ |
| 786 | \ | 787 | \ |
| 788 | __regs = &__get_cpu_var(perf_trace_regs); \ | ||
| 789 | perf_fetch_caller_regs(__regs, 2); \ | ||
| 790 | \ | ||
| 787 | ftrace_perf_buf_submit(entry, __entry_size, rctx, __addr, \ | 791 | ftrace_perf_buf_submit(entry, __entry_size, rctx, __addr, \ |
| 788 | __count, irq_flags); \ | 792 | __count, irq_flags, __regs); \ |
| 789 | } | 793 | } |
| 790 | 794 | ||
| 791 | #undef DEFINE_EVENT | 795 | #undef DEFINE_EVENT |
