提交 198376cd 编写于 作者: Y Yoshihiro YUNOMAE 提交者: Steven Rostedt

tracing: Eliminate double free on failure of allocation on boot up

If allocation of the max_buffer fails on boot up, the error path will
free both per_cpu data structures from the buffers. With the new redesign
of the code, those structures are freed if allocations failed. That is,
the helper function that allocates the buffers will free the per cpu data
on failure. No need to do it again. In fact, the second free will cause
a bug as the code can not handle a double free.

Link: http://lkml.kernel.org/p/20140603042803.27308.30956.stgit@yunodevelSigned-off-by: NYoshihiro YUNOMAE <yoshihiro.yunomae.ez@hitachi.com>
Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
上级 964f7b6b
...@@ -6671,10 +6671,6 @@ __init static int tracer_alloc_buffers(void) ...@@ -6671,10 +6671,6 @@ __init static int tracer_alloc_buffers(void)
out_free_temp_buffer: out_free_temp_buffer:
ring_buffer_free(temp_buffer); ring_buffer_free(temp_buffer);
out_free_cpumask: out_free_cpumask:
free_percpu(global_trace.trace_buffer.data);
#ifdef CONFIG_TRACER_MAX_TRACE
free_percpu(global_trace.max_buffer.data);
#endif
free_cpumask_var(global_trace.tracing_cpumask); free_cpumask_var(global_trace.tracing_cpumask);
out_free_buffer_mask: out_free_buffer_mask:
free_cpumask_var(tracing_buffer_mask); free_cpumask_var(tracing_buffer_mask);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册