summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorChunyu Hu <chuhu@redhat.com>2017-07-20 18:36:09 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-07-27 15:03:29 -0700
commitd40d512105e3f16c2cb3bf3ba8533681650cfeb2 (patch)
treed3ab0d509c1bde90c23a95cbf09cb6818dc3cdb4 /kernel
parentc0cb1831e96c8e08586b7c9b3e21e0e62d3ead61 (diff)
downloadlinux-stable-d40d512105e3f16c2cb3bf3ba8533681650cfeb2.tar.gz
linux-stable-d40d512105e3f16c2cb3bf3ba8533681650cfeb2.tar.bz2
linux-stable-d40d512105e3f16c2cb3bf3ba8533681650cfeb2.zip
tracing: Fix kmemleak in instance_rmdir
commit db9108e054700c96322b0f0028546aa4e643cf0b upstream. Hit the kmemleak when executing instance_rmdir, it forgot releasing mem of tracing_cpumask. With this fix, the warn does not appear any more. unreferenced object 0xffff93a8dfaa7c18 (size 8): comm "mkdir", pid 1436, jiffies 4294763622 (age 9134.308s) hex dump (first 8 bytes): ff ff ff ff ff ff ff ff ........ backtrace: [<ffffffff88b6567a>] kmemleak_alloc+0x4a/0xa0 [<ffffffff8861ea41>] __kmalloc_node+0xf1/0x280 [<ffffffff88b505d3>] alloc_cpumask_var_node+0x23/0x30 [<ffffffff88b5060e>] alloc_cpumask_var+0xe/0x10 [<ffffffff88571ab0>] instance_mkdir+0x90/0x240 [<ffffffff886e5100>] tracefs_syscall_mkdir+0x40/0x70 [<ffffffff886565c9>] vfs_mkdir+0x109/0x1b0 [<ffffffff8865b1d0>] SyS_mkdir+0xd0/0x100 [<ffffffff88403857>] do_syscall_64+0x67/0x150 [<ffffffff88b710e7>] return_from_SYSCALL_64+0x0/0x6a [<ffffffffffffffff>] 0xffffffffffffffff Link: http://lkml.kernel.org/r/1500546969-12594-1-git-send-email-chuhu@redhat.com Fixes: ccfe9e42e451 ("tracing: Make tracing_cpumask available for all instances") Signed-off-by: Chunyu Hu <chuhu@redhat.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/trace/trace.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 5b83ac63e7e9..111dfd986dbf 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -6405,6 +6405,7 @@ static int instance_delete(const char *name)
debugfs_remove_recursive(tr->dir);
free_trace_buffers(tr);
+ free_cpumask_var(tr->tracing_cpumask);
kfree(tr->name);
kfree(tr);