diff options
| author | Frederic Weisbecker <fweisbec@gmail.com> | 2008-11-16 05:57:26 +0100 | 
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-11-16 07:55:23 +0100 | 
| commit | 1c80025a49855b12fa09bb6db71820e3367b1369 (patch) | |
| tree | 063fe72ed9bb3410c3293c83a7882cecc46e7410 /kernel/trace/trace.c | |
| parent | e6e7a65aabdb696cf05a56cfd495c49a11fd4cde (diff) | |
| download | olio-linux-3.10-1c80025a49855b12fa09bb6db71820e3367b1369.tar.xz olio-linux-3.10-1c80025a49855b12fa09bb6db71820e3367b1369.zip  | |
tracing/ftrace: change the type of the init() callback
Impact: extend the ->init() method with the ability to fail
This bring a way to know if the initialization of a tracer successed.
A tracer must return 0 on success and a traditional error (ie:
-ENOMEM) if it fails.
If a tracer fails to init, it is free to print a detailed warn. The
tracing api will not and switch to a new tracer will just return the
error from the init callback.
Note: this will be used for the return tracer.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/trace/trace.c')
| -rw-r--r-- | kernel/trace/trace.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 80898f4870c..396fda034e3 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -2638,8 +2638,11 @@ static int tracing_set_tracer(char *buf)  		current_trace->reset(tr);  	current_trace = t; -	if (t->init) -		t->init(tr); +	if (t->init) { +		ret = t->init(tr); +		if (ret) +			goto out; +	}  	trace_branch_enable(tr);   out:  |