aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace_output.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/trace/trace_output.c')
-rw-r--r--kernel/trace/trace_output.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c
index ca0e79e2abaa..ee8d74840b88 100644
--- a/kernel/trace/trace_output.c
+++ b/kernel/trace/trace_output.c
@@ -20,6 +20,10 @@ static struct hlist_head event_hash[EVENT_HASHSIZE] __read_mostly;
20 20
21static int next_event_type = __TRACE_LAST_TYPE + 1; 21static int next_event_type = __TRACE_LAST_TYPE + 1;
22 22
23#define EVENT_STORAGE_SIZE 128
24static DEFINE_MUTEX(event_storage_mutex);
25static char event_storage[EVENT_STORAGE_SIZE];
26
23int trace_print_seq(struct seq_file *m, struct trace_seq *s) 27int trace_print_seq(struct seq_file *m, struct trace_seq *s)
24{ 28{
25 int len = s->len >= PAGE_SIZE ? PAGE_SIZE - 1 : s->len; 29 int len = s->len >= PAGE_SIZE ? PAGE_SIZE - 1 : s->len;
@@ -470,6 +474,23 @@ int ftrace_output_call(struct trace_iterator *iter, char *name, char *fmt, ...)
470} 474}
471EXPORT_SYMBOL_GPL(ftrace_output_call); 475EXPORT_SYMBOL_GPL(ftrace_output_call);
472 476
477int ftrace_event_define_field(struct ftrace_event_call *call,
478 char *type, int len, char *item, int offset,
479 int field_size, int sign, int filter)
480{
481 int ret;
482
483 mutex_lock(&event_storage_mutex);
484 snprintf(event_storage, sizeof(event_storage),
485 "%s[%d]", type, len);
486 ret = trace_define_field(call, event_storage, item, offset,
487 field_size, sign, filter);
488 mutex_unlock(&event_storage_mutex);
489
490 return ret;
491}
492EXPORT_SYMBOL_GPL(ftrace_event_define_field);
493
473#ifdef CONFIG_KRETPROBES 494#ifdef CONFIG_KRETPROBES
474static inline const char *kretprobed(const char *name) 495static inline const char *kretprobed(const char *name)
475{ 496{