]> pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
rcu: trace fix possible mem-leak
authorSteven Rostedt <rostedt@goodmis.org>
Wed, 30 Jul 2008 18:20:55 +0000 (14:20 -0400)
committerIngo Molnar <mingo@elte.hu>
Fri, 15 Aug 2008 15:54:40 +0000 (17:54 +0200)
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: Steven Rostedt <srostedt@redhat.com>
Reviewed-by: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/rcupreempt_trace.c

index 5edf82c34bbceab891ecbc6e23d576a03c5763e8..35c2d3360ecf750be63922a89101f6cfac249107 100644 (file)
@@ -308,11 +308,16 @@ out:
 
 static int __init rcupreempt_trace_init(void)
 {
+       int ret;
+
        mutex_init(&rcupreempt_trace_mutex);
        rcupreempt_trace_buf = kmalloc(RCUPREEMPT_TRACE_BUF_SIZE, GFP_KERNEL);
        if (!rcupreempt_trace_buf)
                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)