Messages in this thread Patch in this message | | | Date | Sat, 7 Feb 2009 18:52:59 -0200 | From | Arnaldo Carvalho de Melo <> | Subject | [PATCH tip 1/1] tracing: handle unregistering the current tracer |
| |
Impact: simplification
Instead of requiring that plugins have the sequence:
my_tracer_stop(my_trace_array); unregister_tracer(my_tracer);
it should be possible just do a:
unregister_tracer(my_tracer);
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- kernel/trace/trace.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index ef4dbac..d247555 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -559,6 +559,15 @@ void unregister_tracer(struct tracer *type) found: *t = (*t)->next; + + if (type == current_trace && tracer_enabled) { + tracer_enabled = 0; + tracing_stop(); + if (current_trace->stop) + current_trace->stop(&global_trace); + current_trace = &nop_trace; + } + if (strlen(type->name) != max_tracer_type_len) goto out; -- 1.6.0.6
| |