[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAKwvOd=4AT4AEkmVLi+sxCwKMCFgpx=AVsJ-ajhnSWOH=xFy4Q@mail.gmail.com>
Date: Thu, 7 Mar 2019 16:28:13 -0800
From: Nick Desaulniers <ndesaulniers@...gle.com>
To: Nathan Chancellor <natechancellor@...il.com>
Cc: VMware Graphics <linux-graphics-maintainer@...are.com>,
Thomas Hellstrom <thellstrom@...are.com>,
David Airlie <airlied@...ux.ie>,
Daniel Vetter <daniel@...ll.ch>,
dri-devel@...ts.freedesktop.org,
LKML <linux-kernel@...r.kernel.org>,
clang-built-linux@...glegroups.com
Subject: Re: [PATCH] drm/vmwgfx: Zero initialize handle in vmw_execbuf_process
On Thu, Mar 7, 2019 at 2:26 PM Nathan Chancellor
<natechancellor@...il.com> wrote:
>
> When building with -Wsometimes-uninitialized, Clang warns:
>
> drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c:3964:7: warning: variable
> 'handle' is used uninitialized whenever '?:' condition is false
> [-Wsometimes-uninitialized]
>
> It's not wrong; however, in practice, this is never an issue because
> the value of handle isn't used when user_fence_rep is NULL because
> vmw_execbuf_copy_fence_user returns immediately when that is the case.
Still, it's better not to conditionally pass unitialized memory to
functions. Invariants like "don't touch this possibly unitialized
memory in THIS case" don't always pass from maintainer to maintainer.
Thanks for the patch.
Reviewed-by: Nick Desaulniers <ndesaulniers@...gle.com>
> Just zero initialize this variable so that Clang no longer warns.
>
> Link: https://github.com/ClangBuiltLinux/linux/issues/397
> Signed-off-by: Nathan Chancellor <natechancellor@...il.com>
> ---
> drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
> index 88b8178d4687..4ba06c2828a1 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
> @@ -3829,7 +3829,7 @@ int vmw_execbuf_process(struct drm_file *file_priv,
> struct vmw_sw_context *sw_context = &dev_priv->ctx;
> struct vmw_fence_obj *fence = NULL;
> struct vmw_cmdbuf_header *header;
> - uint32_t handle;
> + uint32_t handle = 0;
> int ret;
> int32_t out_fence_fd = -1;
> struct sync_file *sync_file = NULL;
> --
> 2.21.0
>
> --
> You received this message because you are subscribed to the Google Groups "Clang Built Linux" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@...glegroups.com.
> To post to this group, send email to clang-built-linux@...glegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/20190307222611.18100-1-natechancellor%40gmail.com.
> For more options, visit https://groups.google.com/d/optout.
--
Thanks,
~Nick Desaulniers
Powered by blists - more mailing lists