Re: [RFC][PATCH 08/12 v3] tracing: Add seq_buf_get_buf() and seq_buf_commit() helper functions

Steven Rostedt
2014-11-05T20:26:20Z

On Wed, 5 Nov 2014 17:51:25 +0100
Petr Mladek <pmladek@suse.cz> wrote:

> > +
> > +/**
> > + * seq_buf_commit - commit data to the buffer
> > + * @s: the seq_buf handle
> > + * @num: the number of bytes to commit
> > + *
> > + * Commit @num bytes of data written to a buffer previously acquired
> > + * by seq_buf_get. To signal an error condition, or that the data
> > + * didn't fit in the available space, pass a negative @num value.
> > + */
> > +static inline void seq_buf_commit(struct seq_buf *s, int num)
> > +{
> > + if (num < 0) {
> > + s->len = s->size;
>
> I guess that you want to get the buffer into an overflow state. If
> yes, it should be:
>
> s->len = s->size + 1;
>
> or even better
>
> seq_buf_set_overflow(s);

Yeah, I agree with using the seq_buf_set_overflow().

>
>
> Note that this whole patch depends on the decision about the 7th patch
> ("tracing: Have seq_buf use full buffer").

Which I have decided to do.

>
> It might make sense to move the SEQ_BUF_LEFT, SEQ_BUF_USED macros to
> this header and use them in these two function. Or move the functions
> to seq_file.c.
>

I moved SEQ_BUF_LEFT as a static inline seq_buf_buffer_left() and have
used it in trace_seq.c in the TRACE_SEQ_BUF_LEFT macro.

-- Steve