]> Pileus Git - ~andy/linux/blobdiff - kernel/trace/trace_sysprof.c
Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[~andy/linux] / kernel / trace / trace_sysprof.c
index 05f753422aeaf59713ead7110501e35bd9208cf6..a5779bd975db0a386cd67d67629a2bf53e72764e 100644 (file)
@@ -202,7 +202,6 @@ static void start_stack_timer(int cpu)
 
        hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
        hrtimer->function = stack_trace_timer_fn;
-       hrtimer->cb_mode = HRTIMER_CB_IRQSAFE_PERCPU;
 
        hrtimer_start(hrtimer, ns_to_ktime(sample_period), HRTIMER_MODE_REL);
 }
@@ -234,20 +233,10 @@ static void stop_stack_timers(void)
                stop_stack_timer(cpu);
 }
 
-static void stack_reset(struct trace_array *tr)
-{
-       int cpu;
-
-       tr->time_start = ftrace_now(tr->cpu);
-
-       for_each_online_cpu(cpu)
-               tracing_reset(tr, cpu);
-}
-
 static void start_stack_trace(struct trace_array *tr)
 {
        mutex_lock(&sample_timer_lock);
-       stack_reset(tr);
+       tracing_reset_online_cpus(tr);
        start_stack_timers();
        tracer_enabled = 1;
        mutex_unlock(&sample_timer_lock);
@@ -261,11 +250,12 @@ static void stop_stack_trace(struct trace_array *tr)
        mutex_unlock(&sample_timer_lock);
 }
 
-static void stack_trace_init(struct trace_array *tr)
+static int stack_trace_init(struct trace_array *tr)
 {
        sysprof_trace = tr;
 
        start_stack_trace(tr);
+       return 0;
 }
 
 static void stack_trace_reset(struct trace_array *tr)