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 | op-kernel-dev-1c80025a49855b12fa09bb6db71820e3367b1369.zip op-kernel-dev-1c80025a49855b12fa09bb6db71820e3367b1369.tar.gz |
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 80898f4..396fda0 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: |