aboutsummaryrefslogtreecommitdiffstats
path: root/include/trace/ftrace.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/trace/ftrace.h')
-rw-r--r--include/trace/ftrace.h17
1 files changed, 9 insertions, 8 deletions
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h
index c222ef5238bf..c3417c13e3ed 100644
--- a/include/trace/ftrace.h
+++ b/include/trace/ftrace.h
@@ -724,8 +724,8 @@ __attribute__((section("_ftrace_events"))) event_##call = { \
724static void ftrace_profile_##call(proto) \ 724static void ftrace_profile_##call(proto) \
725{ \ 725{ \
726 struct ftrace_data_offsets_##call __maybe_unused __data_offsets;\ 726 struct ftrace_data_offsets_##call __maybe_unused __data_offsets;\
727 extern int perf_swevent_get_recursion_context(int **recursion); \ 727 extern int perf_swevent_get_recursion_context(void); \
728 extern void perf_swevent_put_recursion_context(int *recursion); \ 728 extern void perf_swevent_put_recursion_context(int rctx); \
729 struct ftrace_event_call *event_call = &event_##call; \ 729 struct ftrace_event_call *event_call = &event_##call; \
730 extern void perf_tp_event(int, u64, u64, void *, int); \ 730 extern void perf_tp_event(int, u64, u64, void *, int); \
731 struct ftrace_raw_##call *entry; \ 731 struct ftrace_raw_##call *entry; \
@@ -736,8 +736,8 @@ static void ftrace_profile_##call(proto) \
736 int __data_size; \ 736 int __data_size; \
737 char *trace_buf; \ 737 char *trace_buf; \
738 char *raw_data; \ 738 char *raw_data; \
739 int *recursion; \
740 int __cpu; \ 739 int __cpu; \
740 int rctx; \
741 int pc; \ 741 int pc; \
742 \ 742 \
743 pc = preempt_count(); \ 743 pc = preempt_count(); \
@@ -753,8 +753,9 @@ static void ftrace_profile_##call(proto) \
753 \ 753 \
754 local_irq_save(irq_flags); \ 754 local_irq_save(irq_flags); \
755 \ 755 \
756 if (perf_swevent_get_recursion_context(&recursion)) \ 756 rctx = perf_swevent_get_recursion_context(); \
757 goto end_recursion; \ 757 if (rctx < 0) \
758 goto end_recursion; \
758 \ 759 \
759 __cpu = smp_processor_id(); \ 760 __cpu = smp_processor_id(); \
760 \ 761 \
@@ -781,9 +782,9 @@ static void ftrace_profile_##call(proto) \
781 perf_tp_event(event_call->id, __addr, __count, entry, \ 782 perf_tp_event(event_call->id, __addr, __count, entry, \
782 __entry_size); \ 783 __entry_size); \
783 \ 784 \
784end: \ 785end: \
785 perf_swevent_put_recursion_context(recursion); \ 786 perf_swevent_put_recursion_context(rctx); \
786end_recursion: \ 787end_recursion: \
787 local_irq_restore(irq_flags); \ 788 local_irq_restore(irq_flags); \
788 \ 789 \
789} 790}