From d29932f99a6c25d48db80bcf974218e7ad217be4 Mon Sep 17 00:00:00 2001 From: "Steven Rostedt (Red Hat)" Date: Thu, 9 May 2013 15:00:07 -0400 Subject: [PATCH] --- yaml --- r: 375453 b: refs/heads/master c: da511bf33e47ea1f33f4b672f7da166d2a1b8a91 h: refs/heads/master i: 375451: 4923908312de3861e17d9acd6dab42ab047105c5 v: v3 --- [refs] | 2 +- trunk/kernel/trace/trace_events.c | 32 +++++++++++++++++++------------ 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/[refs] b/[refs] index 7aa7bbc284ca..d508a65bb2b3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1cf4c0732db3cd3c49cadbc60ff6bda08604e6fa +refs/heads/master: da511bf33e47ea1f33f4b672f7da166d2a1b8a91 diff --git a/trunk/kernel/trace/trace_events.c b/trunk/kernel/trace/trace_events.c index 8be1224046f8..7a0cf68027cc 100644 --- a/trunk/kernel/trace/trace_events.c +++ b/trunk/kernel/trace/trace_events.c @@ -1529,6 +1529,24 @@ __register_event(struct ftrace_event_call *call, struct module *mod) return 0; } +static struct ftrace_event_file * +trace_create_new_event(struct ftrace_event_call *call, + struct trace_array *tr) +{ + struct ftrace_event_file *file; + + file = kmem_cache_alloc(file_cachep, GFP_TRACE); + if (!file) + return NULL; + + file->event_call = call; + file->tr = tr; + atomic_set(&file->sm_ref, 0); + list_add(&file->list, &tr->events); + + return file; +} + /* Add an event to a trace directory */ static int __trace_add_new_event(struct ftrace_event_call *call, @@ -1540,15 +1558,10 @@ __trace_add_new_event(struct ftrace_event_call *call, { struct ftrace_event_file *file; - file = kmem_cache_alloc(file_cachep, GFP_TRACE); + file = trace_create_new_event(call, tr); if (!file) return -ENOMEM; - file->event_call = call; - file->tr = tr; - atomic_set(&file->sm_ref, 0); - list_add(&file->list, &tr->events); - return event_create_dir(tr->event_dir, file, id, enable, filter, format); } @@ -1563,15 +1576,10 @@ __trace_early_add_new_event(struct ftrace_event_call *call, { struct ftrace_event_file *file; - file = kmem_cache_alloc(file_cachep, GFP_TRACE); + file = trace_create_new_event(call, tr); if (!file) return -ENOMEM; - file->event_call = call; - file->tr = tr; - atomic_set(&file->sm_ref, 0); - list_add(&file->list, &tr->events); - return 0; }