Commit 5802294f authored by Steven Rostedt's avatar Steven Rostedt Committed by Ingo Molnar

rcu: trace fix possible mem-leak

In the initialization of the RCU trace module, if
rcupreempt_debugfs_init() fails, we never free the the trace buffer.

This patch frees the trace buffer in case the debugfs fails.
Signed-off-by: default avatarSteven Rostedt <srostedt@redhat.com>
Reviewed-by: default avatar"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent dd0078f4
...@@ -308,11 +308,16 @@ static int rcupreempt_debugfs_init(void) ...@@ -308,11 +308,16 @@ static int rcupreempt_debugfs_init(void)
static int __init rcupreempt_trace_init(void) static int __init rcupreempt_trace_init(void)
{ {
int ret;
mutex_init(&rcupreempt_trace_mutex); mutex_init(&rcupreempt_trace_mutex);
rcupreempt_trace_buf = kmalloc(RCUPREEMPT_TRACE_BUF_SIZE, GFP_KERNEL); rcupreempt_trace_buf = kmalloc(RCUPREEMPT_TRACE_BUF_SIZE, GFP_KERNEL);
if (!rcupreempt_trace_buf) if (!rcupreempt_trace_buf)
return 1; return 1;
return rcupreempt_debugfs_init(); ret = rcupreempt_debugfs_init();
if (ret)
kfree(rcupreempt_trace_buf);
return ret;
} }
static void __exit rcupreempt_trace_cleanup(void) static void __exit rcupreempt_trace_cleanup(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment