Re: [PATCH 2/4] tracing: fix trace_seq_printf return value

From: Steven Rostedt
Date: Wed Oct 21 2009 - 18:14:16 EST


On Thu, 2009-10-22 at 00:02 +0200, Jiri Olsa wrote:
> On Wed, Oct 21, 2009 at 12:20:35PM -0400, Steven Rostedt wrote:
> > On Wed, 2009-10-21 at 16:36 +0200, Jiri Olsa wrote:
> > > I believe we want to return the number of written characters,
> > > instead of the available buffer length.
> > >
> > > wbr,
> > > jirka
> > >
> > > Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
> > > ---
> > > kernel/trace/trace_output.c | 2 +-
> > > 1 files changed, 1 insertions(+), 1 deletions(-)
> > >
> > > diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c
> > > index ed17565..e871125 100644
> > > --- a/kernel/trace/trace_output.c
> > > +++ b/kernel/trace/trace_output.c
> > > @@ -95,7 +95,7 @@ trace_seq_printf(struct trace_seq *s, const char *fmt, ...)
> > >
> > > s->len += ret;
> > >
> > > - return len;
> > > + return ret;
> >
> > Actually the return value here is ambiguous. Returning len is actually
> > safer. It probably should only return 0 (buffer not big enough to write
> > to) or 1 (buffer is big enough).
> >
> > Because this should actually return non zero:
> >
> > trace_seq_printf(s, "");
> >
> > -- Steve
> >
> > > }
> > > EXPORT_SYMBOL_GPL(trace_seq_printf);
> > >
> >
>
> I made the suggested fix, plus spot not used function.
>
> ---
> Making trace_seq_printf return 0 if the trace oversizes the buffer's free
> space, 1 otherwise. Removing not used trace_seq_vprintf function.

err, I hate to remove that function. This is a utility file that is
exported for other parts of the kernel to use. At least make that a
separate patch.

-- Steve


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/