Messages in this thread |  | | | Subject | Re: [PATCH 2/4] tracing: fix trace_seq_printf return value | | From | Steven Rostedt <> | | Date | Wed, 21 Oct 2009 18:14:07 -0400 |
| |
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@redhat.com> > > > --- > > > 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
|  |