Re: [PATCH 05/13] ftrace: Call trace_parser_clear() properly

From: Frederic Weisbecker
Date: Tue Dec 08 2009 - 04:48:43 EST


On Tue, Dec 08, 2009 at 11:15:30AM +0800, Li Zefan wrote:
> I found a weird behavior:
>
> # echo 'fuse:*' > set_ftrace_filter
> bash: echo: write error: Invalid argument
> # cat set_ftrace_filter
> fuse_dev_fasync
> fuse_dev_poll
> fuse_copy_do
>
> We should call trace_parser_clear() no matter ftrace_process_regex()
> returns 0 or -errno.
>
> Signed-off-by: Li Zefan <lizf@xxxxxxxxxxxxxx>
> ---
> kernel/trace/ftrace.c | 3 +--
> 1 files changed, 1 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
> index 08a3fb5..ff8aecd 100644
> --- a/kernel/trace/ftrace.c
> +++ b/kernel/trace/ftrace.c
> @@ -2208,10 +2208,9 @@ ftrace_regex_write(struct file *file, const char __user *ubuf,
> !trace_parser_cont(parser)) {
> ret = ftrace_process_regex(parser->buffer,
> parser->idx, enable);
> + trace_parser_clear(parser);
> if (ret)
> goto out_unlock;
> -
> - trace_parser_clear(parser);
> }


I'm missing something. How that can happen. Anytime we reopen
the file, the parser is re-allocated.

I guess that happens if you open in rw mode? But not using the
example in the changelog?

--
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/