tracing: Use free_trace_buffer() in allocate_trace_buffers()
In allocate_trace_buffers(), if allocating tr->max_buffer fails, we can directly call free_trace_buffer to free tr->array_buffer. Link: https://lkml.kernel.org/r/65f0702d-07f6-08de-2a07-4c50af56a67b@huawei.com Signed-off-by: Zhiqiang Liu <liuzhiqiang26@huawei.com> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
This commit is contained in:
parent
4c3d2f9388
commit
59927cbe3f
|
@ -9101,6 +9101,16 @@ allocate_trace_buffer(struct trace_array *tr, struct array_buffer *buf, int size
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void free_trace_buffer(struct array_buffer *buf)
|
||||
{
|
||||
if (buf->buffer) {
|
||||
ring_buffer_free(buf->buffer);
|
||||
buf->buffer = NULL;
|
||||
free_percpu(buf->data);
|
||||
buf->data = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static int allocate_trace_buffers(struct trace_array *tr, int size)
|
||||
{
|
||||
int ret;
|
||||
|
@ -9113,10 +9123,7 @@ static int allocate_trace_buffers(struct trace_array *tr, int size)
|
|||
ret = allocate_trace_buffer(tr, &tr->max_buffer,
|
||||
allocate_snapshot ? size : 1);
|
||||
if (MEM_FAIL(ret, "Failed to allocate trace buffer\n")) {
|
||||
ring_buffer_free(tr->array_buffer.buffer);
|
||||
tr->array_buffer.buffer = NULL;
|
||||
free_percpu(tr->array_buffer.data);
|
||||
tr->array_buffer.data = NULL;
|
||||
free_trace_buffer(&tr->array_buffer);
|
||||
return -ENOMEM;
|
||||
}
|
||||
tr->allocated_snapshot = allocate_snapshot;
|
||||
|
@ -9131,16 +9138,6 @@ static int allocate_trace_buffers(struct trace_array *tr, int size)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void free_trace_buffer(struct array_buffer *buf)
|
||||
{
|
||||
if (buf->buffer) {
|
||||
ring_buffer_free(buf->buffer);
|
||||
buf->buffer = NULL;
|
||||
free_percpu(buf->data);
|
||||
buf->data = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static void free_trace_buffers(struct trace_array *tr)
|
||||
{
|
||||
if (!tr)
|
||||
|
|
Loading…
Reference in New Issue