diff options
author | Ingo Molnar <mingo@elte.hu> | 2010-12-22 12:46:12 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2010-12-22 17:12:08 +0100 |
commit | 9fb67204d7a00a6444bc121f221527034613d338 (patch) | |
tree | 1f8e9715955a41577a2ee14be922683f93aa0e12 /include/trace/ftrace.h | |
parent | 8c1df4002aa425973d7d25ffa56c042acd953bed (diff) | |
parent | 287050d390264402e11bea8b811859e42e8faa29 (diff) | |
download | talos-op-linux-9fb67204d7a00a6444bc121f221527034613d338.tar.gz talos-op-linux-9fb67204d7a00a6444bc121f221527034613d338.zip |
Merge branch 'tip/perf/core' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core
Diffstat (limited to 'include/trace/ftrace.h')
-rw-r--r-- | include/trace/ftrace.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h index e718a917d897..e16610c208c9 100644 --- a/include/trace/ftrace.h +++ b/include/trace/ftrace.h @@ -296,13 +296,19 @@ static struct trace_event_functions ftrace_event_type_funcs_##call = { \ #undef __array #define __array(type, item, len) \ - BUILD_BUG_ON(len > MAX_FILTER_STR_VAL); \ - ret = trace_define_field(event_call, #type "[" #len "]", #item, \ + do { \ + mutex_lock(&event_storage_mutex); \ + BUILD_BUG_ON(len > MAX_FILTER_STR_VAL); \ + snprintf(event_storage, sizeof(event_storage), \ + "%s[%d]", #type, len); \ + ret = trace_define_field(event_call, event_storage, #item, \ offsetof(typeof(field), item), \ sizeof(field.item), \ is_signed_type(type), FILTER_OTHER); \ - if (ret) \ - return ret; + mutex_unlock(&event_storage_mutex); \ + if (ret) \ + return ret; \ + } while (0); #undef __dynamic_array #define __dynamic_array(type, item, len) \ |