lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 04 Dec 2017 18:36:03 +0200
From:   Laurent Pinchart <laurent.pinchart@...asonboard.com>
To:     Arnd Bergmann <arnd@...db.de>
Cc:     Rob Clark <robdclark@...il.com>, David Airlie <airlied@...ux.ie>,
        Archit Taneja <architt@...eaurora.org>,
        Daniel Vetter <daniel.vetter@...ll.ch>,
        Liviu Dudau <Liviu.Dudau@....com>,
        Gustavo Padovan <gustavo.padovan@...labora.com>,
        linux-arm-msm@...r.kernel.org, dri-devel@...ts.freedesktop.org,
        freedreno@...ts.freedesktop.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] drm: msm: avoid false-positive -Wmaybe-uninitialized warning

Hi Arnd,

Thank you for the patch.

On Monday, 4 December 2017 16:44:23 EET Arnd Bergmann wrote:
> gcc-8 -fsanitize-coverage=trace-pc produces a false-positive warning:
> 
> drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c: In function
> 'mdp5_plane_mode_set.isra.8':
> drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c:1053:3: error: 'crtc_x_r' may be
> used uninitialized in this function [-Werror=maybe-uninitialized]
> 
> It's relatively clear from reading the source that this cannot happen,
> and older compilers get it right. This rearranges the code remove
> the two affected variables, which reliably avoids the problem.
> 
> Signed-off-by: Arnd Bergmann <arnd@...db.de>

The patch looks good to me, so

Acked-by: Laurent Pinchart <laurent.pinchart@...asonboard.com>

However I think it would also be useful to file a bug report for gcc, 
especially if older versions got this right.

> ---
>  drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 9 ++-------
>  1 file changed, 2 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c index
> be50445f9901..c50449882037 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> @@ -964,8 +964,6 @@ static int mdp5_plane_mode_set(struct drm_plane *plane,
>  	uint32_t src_x, src_y;
>  	uint32_t src_w, src_h;
>  	uint32_t src_img_w, src_img_h;
> -	uint32_t src_x_r;
> -	int crtc_x_r;
>  	int ret;
> 
>  	nplanes = fb->format->num_planes;
> @@ -1010,9 +1008,6 @@ static int mdp5_plane_mode_set(struct drm_plane
> *plane, crtc_w /= 2;
>  		src_w /= 2;
>  		src_img_w /= 2;
> -
> -		crtc_x_r = crtc_x + crtc_w;
> -		src_x_r = src_x + src_w;
>  	}
> 
>  	ret = calc_scalex_steps(plane, pix_format, src_w, crtc_w, step.x);
> @@ -1052,9 +1047,9 @@ static int mdp5_plane_mode_set(struct drm_plane
> *plane, if (right_hwpipe)
>  		mdp5_hwpipe_mode_set(mdp5_kms, right_hwpipe, fb, &step, &pe,
>  				     config, hdecm, vdecm, hflip, vflip,
> -				     crtc_x_r, crtc_y, crtc_w, crtc_h,
> +				     crtc_x + crtc_w, crtc_y, crtc_w, crtc_h,
>  				     src_img_w, src_img_h,
> -				     src_x_r, src_y, src_w, src_h);
> +				     src_x + src_w, src_y, src_w, src_h);
> 
>  	plane->fb = fb;

-- 
Regards,

Laurent Pinchart

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ