aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace
diff options
context:
space:
mode:
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>2014-01-10 17:51:01 -0500
committerSteven Rostedt <rostedt@goodmis.org>2014-02-20 12:13:08 -0500
commitbf6065b5c7014ab30383405718c7a6b96d2cbdb2 (patch)
tree4384129e5a26ee055cc58059fc680e5d8e4ca18c /kernel/trace
parent8c1a49aedb73fb2f15aaa32ad9e2e1c4289f45cb (diff)
tracing: Pass trace_array to flag_changed callback
As options (flags) may affect instances instead of being global the flag_changed() callbacks need to receive the trace_array descriptor of the instance they will be modifying. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace')
-rw-r--r--kernel/trace/trace.c2
-rw-r--r--kernel/trace/trace.h2
-rw-r--r--kernel/trace/trace_irqsoff.c4
-rw-r--r--kernel/trace/trace_sched_wakeup.c4
4 files changed, 8 insertions, 4 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index d7dfc7efc4bf..ee8da93e91e0 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -3393,7 +3393,7 @@ int set_tracer_flag(struct trace_array *tr, unsigned int mask, int enabled)
3393 3393
3394 /* Give the tracer a chance to approve the change */ 3394 /* Give the tracer a chance to approve the change */
3395 if (tr->current_trace->flag_changed) 3395 if (tr->current_trace->flag_changed)
3396 if (tr->current_trace->flag_changed(tr->current_trace, mask, !!enabled)) 3396 if (tr->current_trace->flag_changed(tr, mask, !!enabled))
3397 return -EINVAL; 3397 return -EINVAL;
3398 3398
3399 if (enabled) 3399 if (enabled)
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
index 649a23d421c1..36e44732c650 100644
--- a/kernel/trace/trace.h
+++ b/kernel/trace/trace.h
@@ -358,7 +358,7 @@ struct tracer {
358 int (*set_flag)(struct trace_array *tr, 358 int (*set_flag)(struct trace_array *tr,
359 u32 old_flags, u32 bit, int set); 359 u32 old_flags, u32 bit, int set);
360 /* Return 0 if OK with change, else return non-zero */ 360 /* Return 0 if OK with change, else return non-zero */
361 int (*flag_changed)(struct tracer *tracer, 361 int (*flag_changed)(struct trace_array *tr,
362 u32 mask, int set); 362 u32 mask, int set);
363 struct tracer *next; 363 struct tracer *next;
364 struct tracer_flags *flags; 364 struct tracer_flags *flags;
diff --git a/kernel/trace/trace_irqsoff.c b/kernel/trace/trace_irqsoff.c
index fd99b0c183ac..4bf812f454e6 100644
--- a/kernel/trace/trace_irqsoff.c
+++ b/kernel/trace/trace_irqsoff.c
@@ -572,8 +572,10 @@ static void irqsoff_function_set(int set)
572 unregister_irqsoff_function(is_graph()); 572 unregister_irqsoff_function(is_graph());
573} 573}
574 574
575static int irqsoff_flag_changed(struct tracer *tracer, u32 mask, int set) 575static int irqsoff_flag_changed(struct trace_array *tr, u32 mask, int set)
576{ 576{
577 struct tracer *tracer = tr->current_trace;
578
577 if (mask & TRACE_ITER_FUNCTION) 579 if (mask & TRACE_ITER_FUNCTION)
578 irqsoff_function_set(set); 580 irqsoff_function_set(set);
579 581
diff --git a/kernel/trace/trace_sched_wakeup.c b/kernel/trace/trace_sched_wakeup.c
index f0bbdc261028..e14da5e97a69 100644
--- a/kernel/trace/trace_sched_wakeup.c
+++ b/kernel/trace/trace_sched_wakeup.c
@@ -179,8 +179,10 @@ static void wakeup_function_set(int set)
179 unregister_wakeup_function(is_graph()); 179 unregister_wakeup_function(is_graph());
180} 180}
181 181
182static int wakeup_flag_changed(struct tracer *tracer, u32 mask, int set) 182static int wakeup_flag_changed(struct trace_array *tr, u32 mask, int set)
183{ 183{
184 struct tracer *tracer = tr->current_trace;
185
184 if (mask & TRACE_ITER_FUNCTION) 186 if (mask & TRACE_ITER_FUNCTION)
185 wakeup_function_set(set); 187 wakeup_function_set(set);
186 188