Messages in this thread | | | Date | Wed, 10 Apr 2013 09:36:00 +0900 | From | Namhyung Kim <> | Subject | Re: [PATCH 3/3] tracing: Check cpu file on tracing_release() |
| |
Hi Steve,
2013-04-10 오전 9:31, Steven Rostedt 쓴 글: > On Wed, 2013-04-10 at 09:18 +0900, Namhyung Kim wrote: >> From: Namhyung Kim <namhyung.kim@lge.com> >> >> It looks like tracing_release() lacks checking iter->cpu_file so that >> closing a per_cpu trace file would attempt to close all cpu buffers. >> >> Signed-off-by: Namhyung Kim <namhyung@kernel.org> >> --- >> kernel/trace/trace.c | 8 +++++++- >> 1 file changed, 7 insertions(+), 1 deletion(-) >> >> diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c >> index 7270460cfe3c..0beddcb80509 100644 >> --- a/kernel/trace/trace.c >> +++ b/kernel/trace/trace.c >> @@ -2883,7 +2883,13 @@ static int tracing_release(struct inode *inode, struct file *file) >> WARN_ON(!tr->ref); >> tr->ref--; >> >> - for_each_tracing_cpu(cpu) { >> + if (iter->cpu_file == RING_BUFFER_ALL_CPUS) { >> + for_each_tracing_cpu(cpu) { >> + if (iter->buffer_iter[cpu]) > > Only the cpu that is assigned gets buffer_iter[cpu] set. The other > buffer_iter[cpus] will simply be ignored.
You meant iter->cpu_file != RING_BUFFER_ALL_CPUS case, right?
So why bother trying to check other cpus then?
Thanks, Namhyung
-- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |