diff options
Diffstat (limited to 'kernel/trace/trace.c')
-rw-r--r-- | kernel/trace/trace.c | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index e6fac0ffe6f0..6bad12819eb6 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
@@ -860,15 +860,25 @@ static void ftrace_trace_stack(struct trace_array *tr, | |||
860 | static void ftrace_trace_userstack(struct trace_array *tr, | 860 | static void ftrace_trace_userstack(struct trace_array *tr, |
861 | unsigned long flags, int pc); | 861 | unsigned long flags, int pc); |
862 | 862 | ||
863 | void trace_buffer_unlock_commit(struct trace_array *tr, | 863 | static inline void __trace_buffer_unlock_commit(struct trace_array *tr, |
864 | struct ring_buffer_event *event, | 864 | struct ring_buffer_event *event, |
865 | unsigned long flags, int pc) | 865 | unsigned long flags, int pc, |
866 | int wake) | ||
866 | { | 867 | { |
867 | ring_buffer_unlock_commit(tr->buffer, event); | 868 | ring_buffer_unlock_commit(tr->buffer, event); |
868 | 869 | ||
869 | ftrace_trace_stack(tr, flags, 6, pc); | 870 | ftrace_trace_stack(tr, flags, 6, pc); |
870 | ftrace_trace_userstack(tr, flags, pc); | 871 | ftrace_trace_userstack(tr, flags, pc); |
871 | trace_wake_up(); | 872 | |
873 | if (wake) | ||
874 | trace_wake_up(); | ||
875 | } | ||
876 | |||
877 | void trace_buffer_unlock_commit(struct trace_array *tr, | ||
878 | struct ring_buffer_event *event, | ||
879 | unsigned long flags, int pc) | ||
880 | { | ||
881 | __trace_buffer_unlock_commit(tr, event, flags, pc, 1); | ||
872 | } | 882 | } |
873 | 883 | ||
874 | struct ring_buffer_event * | 884 | struct ring_buffer_event * |
@@ -882,7 +892,13 @@ trace_current_buffer_lock_reserve(unsigned char type, unsigned long len, | |||
882 | void trace_current_buffer_unlock_commit(struct ring_buffer_event *event, | 892 | void trace_current_buffer_unlock_commit(struct ring_buffer_event *event, |
883 | unsigned long flags, int pc) | 893 | unsigned long flags, int pc) |
884 | { | 894 | { |
885 | return trace_buffer_unlock_commit(&global_trace, event, flags, pc); | 895 | return __trace_buffer_unlock_commit(&global_trace, event, flags, pc, 1); |
896 | } | ||
897 | |||
898 | void trace_nowake_buffer_unlock_commit(struct ring_buffer_event *event, | ||
899 | unsigned long flags, int pc) | ||
900 | { | ||
901 | return __trace_buffer_unlock_commit(&global_trace, event, flags, pc, 0); | ||
886 | } | 902 | } |
887 | 903 | ||
888 | void | 904 | void |