Re: [PATCH 18/26 v5] seq_buf: Create seq_buf_used() to find out how much was written

From: Steven Rostedt
Date: Wed Nov 19 2014 - 10:50:16 EST


On Tue, 18 Nov 2014 16:02:04 +0100
Petr Mladek <pmladek@xxxxxxx> wrote:

> On Fri 2014-11-14 23:59:05, Steven Rostedt wrote:
> > From: "Steven Rostedt (Red Hat)" <rostedt@xxxxxxxxxxx>
> >
> > Add a helper function seq_buf_used() that replaces the SEQ_BUF_USED()
> > private macro to let callers have a method to know how much of the
> > seq_buf was written to.
> >
> > Link: http://lkml.kernel.org/r/20141114011412.170377300@xxxxxxxxxxx
> > Link: http://lkml.kernel.org/r/20141114011413.321654244@xxxxxxxxxxx
> >
> > Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
> > ---
> > include/linux/seq_buf.h | 6 ++++++
> > kernel/trace/seq_buf.c | 5 +----
> > 2 files changed, 7 insertions(+), 4 deletions(-)
> >
> > diff --git a/include/linux/seq_buf.h b/include/linux/seq_buf.h
> > index 5d91262433e2..93718e570d4c 100644
> > --- a/include/linux/seq_buf.h
> > +++ b/include/linux/seq_buf.h
> > @@ -64,6 +64,12 @@ seq_buf_buffer_left(struct seq_buf *s)
> > return (s->size - 1) - s->len;
> > }
> >
> > +/* How much buffer was written? */
> > +static inline unsigned int seq_buf_used(struct seq_buf *s)
> > +{
> > + return min(s->len, s->size);
>
> To be precise, it should do
>
> return min(s->len, s->size - 1);
>
> at this stage and switch to the above code in ("[PATCH 21/26 v5] tracing: Have
> seq_buf use full buffer"). Well, it does not cause any big harm. Feel
> free to add:

I actually thought about it, but realized that this only replaces the
original use of s->len, and we are only doing this to avoid buffer
overflows. If you get garbage, then so be it, as the original code
would give garbage too. Remember, some of the functions did have real
content in that last byte, even though it was considered "overflowed".

-- Steve


>
> Reviewed-by: Petr Mladek <pmladek@xxxxxxx>
>
> for this patch or for the updated one.
>
--
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/