From: Mike Galbraith Date: Thu, 29 Jan 2009 13:06:52 +0000 (+0100) Subject: perfcounters: fix refcounting bug X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=65d370862f64973611a271ced61864b5f9bb6fc0;p=linux-beck.git perfcounters: fix refcounting bug don't kfree in use counters. Running... while true; do perfstat -e 1 -c true; done ...on all cores for a while doesn't seem to be eating ram, and my oops is gone. Signed-off-by: Mike Galbraith Signed-off-by: Ingo Molnar --- diff --git a/kernel/perf_counter.c b/kernel/perf_counter.c index 1ac18daa424f..f27a7e9f3c41 100644 --- a/kernel/perf_counter.c +++ b/kernel/perf_counter.c @@ -1934,7 +1934,8 @@ __perf_counter_exit_task(struct task_struct *child, } } - kfree(child_counter); + if (!child_counter->filp || !atomic_long_read(&child_counter->filp->f_count)) + kfree(child_counter); } /*