Messages in this thread | | | Subject | Re: [PATCH][GIT PULL][v2.6.35] tracing/events: Convert format output to seq_file | From | Steven Rostedt <> | Date | Thu, 03 Jun 2010 22:13:11 -0400 |
| |
On Fri, 2010-06-04 at 10:11 +0800, Li Zefan wrote: > > +static void *f_start(struct seq_file *m, loff_t *pos) > > +{ > > + loff_t l = 1; > > + void *p; > > + > > + /* Start by showing the header */ > > + if (!*pos) { > > + (*pos)++; > > We shoudn't increment *pos in start() handler. It's a common mistake when > using seqfile.
And a common mistake I do :-p
I'll rebase it with the fix.
> > What we need to do in start() is move the pointer to postion *pos.
So the rest is OK then? All that is needed is the removal of *pos++ ?
Thanks,
-- Steve
> > > + return (void *)FORMAT_HEADER; > > } > > > > - if (r) > > - r = trace_seq_printf(s, "\nprint fmt: %s\n", > > - call->print_fmt); > > + p = (void *)FORMAT_HEADER; > > + do { > > + p = f_next(m, p, &l); > > + } while (p && l < *pos); > > > > - if (!r) { > > - /* > > - * ug! The format output is bigger than a PAGE!! > > - */ > > - buf = "FORMAT TOO BIG\n"; > > - r = simple_read_from_buffer(ubuf, cnt, ppos, > > - buf, strlen(buf)); > > - goto out; > > + return p; > > +}
| |