Re: [PATCH 3/7] t_next should increase position index

From: Steven Rostedt
Date: Wed Jan 29 2020 - 12:13:01 EST


On Fri, 24 Jan 2020 10:02:51 +0300
Vasily Averin <vvs@xxxxxxxxxxxxx> wrote:

> if seq_file .next fuction does not change position index,
> read after some lseek can generate unexpected output.
>
> https://bugzilla.kernel.org/show_bug.cgi?id=206283
> Signed-off-by: Vasily Averin <vvs@xxxxxxxxxxxxx>
> ---
> kernel/trace/ftrace.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
> index 9bf1f2c..ca25210 100644
> --- a/kernel/trace/ftrace.c
> +++ b/kernel/trace/ftrace.c
> @@ -3442,8 +3442,10 @@ static void *t_mod_start(struct seq_file *m, loff_t *pos)
> loff_t l = *pos; /* t_probe_start() must use original pos */
> void *ret;
>
> - if (unlikely(ftrace_disabled))
> + if (unlikely(ftrace_disabled)) {
> + (*pos)++;
> return NULL;
> + }

This isn't needed. If ftrace_disabled is set, we shouldn't be printing
anything. This case isn't the same as the report in the bugzilla.

-- Steve

>
> if (iter->flags & FTRACE_ITER_PROBE)
> return t_probe_next(m, pos);