What's happen if pipe_close is NULL? Wny following straightforward check
is wrong?
I mean the above description explain pipe_close is only useful if plugin
allocate something at pipe_open. then allowing NULL seems natural.
if (iter->trace->pipe_close)
iter->trace->pipe_close(iter);
just nit.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
> > diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
> > index 874f289..f804b40 100644
> > --- a/kernel/trace/trace.c
> > +++ b/kernel/trace/trace.c
> > @@ -2898,6 +2898,10 @@ static int tracing_release_pipe(struct inode *inode, struct file *file)
> > else
> > cpumask_clear_cpu(iter->cpu_file, tracing_reader_cpumask);
> >
> > +
> > + if (iter->trace->pipe_open)
> > + iter->trace->pipe_close(iter);
> > +
>
> What's happen if pipe_close is NULL? Wny following straightforward check
> is wrong?
> I mean the above description explain pipe_close is only useful if plugin
> allocate something at pipe_open. then allowing NULL seems natural.
>
> if (iter->trace->pipe_close)
> iter->trace->pipe_close(iter);
Ug, good point (stupid cut & paste should be illegal).
Ingo, I'll fix this up too in the next patch set. Want me to rebase it
or just start with this fix?
-- Steve
> On Wed, 2009-12-09 at 15:35 +0900, KOSAKI Motohiro wrote:
>
> > > diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
> > > index 874f289..f804b40 100644
> > > --- a/kernel/trace/trace.c
> > > +++ b/kernel/trace/trace.c
> > > @@ -2898,6 +2898,10 @@ static int tracing_release_pipe(struct inode *inode, struct file *file)
> > > else
> > > cpumask_clear_cpu(iter->cpu_file, tracing_reader_cpumask);
> > >
> > > +
> > > + if (iter->trace->pipe_open)
> > > + iter->trace->pipe_close(iter);
> > > +
> >
> > What's happen if pipe_close is NULL? Wny following straightforward check
> > is wrong?
> > I mean the above description explain pipe_close is only useful if plugin
> > allocate something at pipe_open. then allowing NULL seems natural.
> >
> > if (iter->trace->pipe_close)
> > iter->trace->pipe_close(iter);
>
> Ug, good point (stupid cut & paste should be illegal).
>
> Ingo, I'll fix this up too in the next patch set. Want me to rebase it
> or just start with this fix?
I'd suggest to start with a fix. Thanks,
Ingo
tracing: Only call pipe_close if pipe_close is defined
This fixes a cut and paste error that had pipe_close get called
if pipe_open was defined (not pipe_close).
Reported-by: Kosaki Motohiro <kosaki....@jp.fujitsu.com>
LKML-Reference: <20091209153204...@jp.fujitsu.com>
Signed-off-by: Steven Rostedt <ros...@goodmis.org>
---
kernel/trace/trace.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index f804b40..dc937e1 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -2899,7 +2899,7 @@ static int tracing_release_pipe(struct inode *inode, struct file *file)
cpumask_clear_cpu(iter->cpu_file, tracing_reader_cpumask);
- if (iter->trace->pipe_open)
+ if (iter->trace->pipe_close)
iter->trace->pipe_close(iter);
mutex_unlock(&trace_types_lock);