Re: [PATCH] cgroup: use uninitialized_var() for may-be uninitialized variable

From: Li Zefan
Date: Tue Apr 22 2014 - 02:27:53 EST


On 2014/4/22 13:44, Jianyu Zhan wrote:
> To suppress this warning:
>
> warning: âerrâ may be used uninitialized in this function [-Wmaybe-uninitialized]
> int err;
> ^

I don't see this warning, and I don't see how this is possible.

static int create_css(struct cgroup *cgrp, struct cgroup_subsys *ss)
{
struct cgroup *parent = cgrp->parent;
struct cgroup_subsys_state *css;
int err;

lockdep_assert_held(&cgroup_mutex);

css = ss->css_alloc(cgroup_css(parent, ss));
if (IS_ERR(css))
return PTR_ERR(css);

err = percpu_ref_init(&css->refcnt, css_release);
if (err)
goto err_free_css;
...

return err;
}

>
> Use the uninitialized_var() to decalre err. It also serves to be good documetation.
>

anyway, uninitialized_var() should be avoided if possible.

nack

> Signed-off-by: Jianyu Zhan <nasa4836@xxxxxxxxx>
> ---
> kernel/cgroup.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/cgroup.c b/kernel/cgroup.c
> index 24675f5..930569c 100644
> --- a/kernel/cgroup.c
> +++ b/kernel/cgroup.c
> @@ -4144,7 +4144,7 @@ static int create_css(struct cgroup *cgrp, struct cgroup_subsys *ss)
> {
> struct cgroup *parent = cgrp->parent;
> struct cgroup_subsys_state *css;
> - int err;
> + int uninitialized_var(err);
>
> lockdep_assert_held(&cgroup_mutex);
>
>

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