Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit da511bf3 authored by Steven Rostedt (Red Hat)'s avatar Steven Rostedt (Red Hat) Committed by Steven Rostedt
Browse files

tracing: Add helper function trace_create_new_event() to remove duplicate code



Both __trace_add_new_event() and __trace_early_add_new_event() do
basically the same thing, except that __trace_add_new_event() does
a little more.

Instead of having duplicate code between the two functions, add
a helper function trace_create_new_event() that both can use.
This will help against having bugs fixed in one function but not
the other.

Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
parent 1cf4c073
Loading
Loading
Loading
Loading
+20 −12
Original line number Diff line number Diff line
@@ -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;
}