Re: [PATCH] trace/ftrace: fix maybe-uninitialized compiler warning

From: Steven Rostedt
Date: Thu May 28 2020 - 19:50:04 EST


Hi Kaitao,

Sorry for the late response, I've been a bit swamped.

On Sat, 23 May 2020 23:53:04 +0800
Kaitao Cheng <pilgrimtao@xxxxxxxxx> wrote:

> During build compiler reports some 'false positive' warnings about
> variables {'seq_ops', 'filtered_pids', 'other_pids'} may be used
> uninitialized. This patch silences these warnings.
> Also delete some useless spaces
>
> Signed-off-by: Kaitao Cheng <pilgrimtao@xxxxxxxxx>
> ---
> kernel/trace/ftrace.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
> index 7d0ebd104706..01a61bdc4e63 100644
> --- a/kernel/trace/ftrace.c
> +++ b/kernel/trace/ftrace.c
> @@ -2260,7 +2260,7 @@ ftrace_find_tramp_ops_next(struct dyn_ftrace *rec,
>
> if (hash_contains_ip(ip, op->func_hash))
> return op;
> - }
> + }
>
> return NULL;
> }
> @@ -3599,7 +3599,7 @@ static int t_show(struct seq_file *m, void *v)
> if (direct)
> seq_printf(m, "\n\tdirect-->%pS", (void *)direct);
> }
> - }
> + }
>
> seq_putc(m, '\n');
>
> @@ -7151,6 +7151,9 @@ static int pid_open(struct inode *inode, struct file *file, int type)
> case TRACE_NO_PIDS:
> seq_ops = &ftrace_no_pid_sops;
> break;
> + default:
> + trace_array_put(tr);
> + return -EINVAL;
> }
>
> ret = seq_open(file, seq_ops);
> @@ -7229,6 +7232,9 @@ pid_write(struct file *filp, const char __user *ubuf,
> other_pids = rcu_dereference_protected(tr->function_pids,
> lockdep_is_held(&ftrace_lock));
> break;
> + default:
> + ret = -EINVAL;

As these are anomalies, and should never happen, we should probably add
a WARN_ON_ONCE(1); here as well.

Care to send a v2?

Thanks!

-- Steve


> + goto out;
> }
>
> ret = trace_pid_write(filtered_pids, &pid_list, ubuf, cnt);