[RESEND] drm/gma500: initialize gma_clock_t structures

Message ID 20180116145720.2348043-1-arnd@arndb.de
State New
Headers show
Series
  • [RESEND] drm/gma500: initialize gma_clock_t structures
Related show

Commit Message

Arnd Bergmann Jan. 16, 2018, 2:57 p.m.
The two functions pass a partially initialized structure back to the
caller after a memset() on the destination.

This is not entirely well-defined, most compilers are sensible enough
to either keep the zero-initialization for the uninitialized members,
but gcc-4.4 does not, and it warns about this:

drivers/gpu/drm/gma500/oaktrail_crtc.c: In function 'mrst_sdvo_find_best_pll':
drivers/gpu/drm/gma500/oaktrail_crtc.c:175: warning: 'clock.vco' may be used uninitialized in this function
drivers/gpu/drm/gma500/oaktrail_crtc.c:175: warning: 'clock.dot' may be used uninitialized in this function
drivers/gpu/drm/gma500/oaktrail_crtc.c:175: warning: 'clock.p2' may be used uninitialized in this function
drivers/gpu/drm/gma500/oaktrail_crtc.c:175: warning: 'clock.m2' may be used uninitialized in this function
drivers/gpu/drm/gma500/oaktrail_crtc.c:175: warning: 'clock.m1' may be used uninitialized in this function
drivers/gpu/drm/gma500/oaktrail_crtc.c: In function 'mrst_lvds_find_best_pll':
drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.p' may be used uninitialized in this function
drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.vco' may be used uninitialized in this function
drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.p2' may be used uninitialized in this function
drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.m2' may be used uninitialized in this function
drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.m1' may be used uninitialized in this function
drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.n' may be used uninitialized in this function

This adds an initialization at declaration time to avoid the warning
and make it well-defined on all compiler versions.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
Originally submitted on Sep 15, 2017, but got no reply. Resending unchanged.
---
 drivers/gpu/drm/gma500/oaktrail_crtc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Daniel Vetter Jan. 17, 2018, 8:27 a.m. | #1
On Tue, Jan 16, 2018 at 03:57:10PM +0100, Arnd Bergmann wrote:
> The two functions pass a partially initialized structure back to the
> caller after a memset() on the destination.
> 
> This is not entirely well-defined, most compilers are sensible enough
> to either keep the zero-initialization for the uninitialized members,
> but gcc-4.4 does not, and it warns about this:
> 
> drivers/gpu/drm/gma500/oaktrail_crtc.c: In function 'mrst_sdvo_find_best_pll':
> drivers/gpu/drm/gma500/oaktrail_crtc.c:175: warning: 'clock.vco' may be used uninitialized in this function
> drivers/gpu/drm/gma500/oaktrail_crtc.c:175: warning: 'clock.dot' may be used uninitialized in this function
> drivers/gpu/drm/gma500/oaktrail_crtc.c:175: warning: 'clock.p2' may be used uninitialized in this function
> drivers/gpu/drm/gma500/oaktrail_crtc.c:175: warning: 'clock.m2' may be used uninitialized in this function
> drivers/gpu/drm/gma500/oaktrail_crtc.c:175: warning: 'clock.m1' may be used uninitialized in this function
> drivers/gpu/drm/gma500/oaktrail_crtc.c: In function 'mrst_lvds_find_best_pll':
> drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.p' may be used uninitialized in this function
> drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.vco' may be used uninitialized in this function
> drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.p2' may be used uninitialized in this function
> drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.m2' may be used uninitialized in this function
> drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.m1' may be used uninitialized in this function
> drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.n' may be used uninitialized in this function
> 
> This adds an initialization at declaration time to avoid the warning
> and make it well-defined on all compiler versions.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Applied to drm-misc-next-fixes for 4.16, thx for your patch. Aside: Still
don't want commit rights? :-)

Cheers, Daniel
> ---
> Originally submitted on Sep 15, 2017, but got no reply. Resending unchanged.
> ---
>  drivers/gpu/drm/gma500/oaktrail_crtc.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/gma500/oaktrail_crtc.c b/drivers/gpu/drm/gma500/oaktrail_crtc.c
> index 0fff269d3fe6..b49fe79c3f44 100644
> --- a/drivers/gpu/drm/gma500/oaktrail_crtc.c
> +++ b/drivers/gpu/drm/gma500/oaktrail_crtc.c
> @@ -134,7 +134,7 @@ static bool mrst_sdvo_find_best_pll(const struct gma_limit_t *limit,
>  				    struct drm_crtc *crtc, int target,
>  				    int refclk, struct gma_clock_t *best_clock)
>  {
> -	struct gma_clock_t clock;
> +	struct gma_clock_t clock = {};
>  	u32 target_vco, actual_freq;
>  	s32 freq_error, min_error = 100000;
>  
> @@ -191,7 +191,7 @@ static bool mrst_lvds_find_best_pll(const struct gma_limit_t *limit,
>  				    struct drm_crtc *crtc, int target,
>  				    int refclk, struct gma_clock_t *best_clock)
>  {
> -	struct gma_clock_t clock;
> +	struct gma_clock_t clock = {};
>  	int err = target;
>  
>  	memset(best_clock, 0, sizeof(*best_clock));
> -- 
> 2.9.0
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
Arnd Bergmann Jan. 17, 2018, 2:36 p.m. | #2
On Wed, Jan 17, 2018 at 9:27 AM, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Tue, Jan 16, 2018 at 03:57:10PM +0100, Arnd Bergmann wrote:
>> The two functions pass a partially initialized structure back to the
>> caller after a memset() on the destination.
>>
>> This is not entirely well-defined, most compilers are sensible enough
>> to either keep the zero-initialization for the uninitialized members,
>> but gcc-4.4 does not, and it warns about this:
>>
>> drivers/gpu/drm/gma500/oaktrail_crtc.c: In function 'mrst_sdvo_find_best_pll':
>> drivers/gpu/drm/gma500/oaktrail_crtc.c:175: warning: 'clock.vco' may be used uninitialized in this function
>> drivers/gpu/drm/gma500/oaktrail_crtc.c:175: warning: 'clock.dot' may be used uninitialized in this function
>> drivers/gpu/drm/gma500/oaktrail_crtc.c:175: warning: 'clock.p2' may be used uninitialized in this function
>> drivers/gpu/drm/gma500/oaktrail_crtc.c:175: warning: 'clock.m2' may be used uninitialized in this function
>> drivers/gpu/drm/gma500/oaktrail_crtc.c:175: warning: 'clock.m1' may be used uninitialized in this function
>> drivers/gpu/drm/gma500/oaktrail_crtc.c: In function 'mrst_lvds_find_best_pll':
>> drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.p' may be used uninitialized in this function
>> drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.vco' may be used uninitialized in this function
>> drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.p2' may be used uninitialized in this function
>> drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.m2' may be used uninitialized in this function
>> drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.m1' may be used uninitialized in this function
>> drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.n' may be used uninitialized in this function
>>
>> This adds an initialization at declaration time to avoid the warning
>> and make it well-defined on all compiler versions.
>>
>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>
> Applied to drm-misc-next-fixes for 4.16, thx for your patch.

Thanks!

> Aside: Still don't want commit rights? :-)

I think I'm fine without. While I do tend to have a backlog on DRM
patches that I'd
like to get merged, they are generally of the kind that I should not
apply myself
without the maintainer being involved in some form, and then they can commit
it themselves.

       Arnd
Daniel Vetter Jan. 17, 2018, 2:55 p.m. | #3
On Wed, Jan 17, 2018 at 3:36 PM, Arnd Bergmann <arnd@arndb.de> wrote:
> On Wed, Jan 17, 2018 at 9:27 AM, Daniel Vetter <daniel@ffwll.ch> wrote:
>> On Tue, Jan 16, 2018 at 03:57:10PM +0100, Arnd Bergmann wrote:
>>> The two functions pass a partially initialized structure back to the
>>> caller after a memset() on the destination.
>>>
>>> This is not entirely well-defined, most compilers are sensible enough
>>> to either keep the zero-initialization for the uninitialized members,
>>> but gcc-4.4 does not, and it warns about this:
>>>
>>> drivers/gpu/drm/gma500/oaktrail_crtc.c: In function 'mrst_sdvo_find_best_pll':
>>> drivers/gpu/drm/gma500/oaktrail_crtc.c:175: warning: 'clock.vco' may be used uninitialized in this function
>>> drivers/gpu/drm/gma500/oaktrail_crtc.c:175: warning: 'clock.dot' may be used uninitialized in this function
>>> drivers/gpu/drm/gma500/oaktrail_crtc.c:175: warning: 'clock.p2' may be used uninitialized in this function
>>> drivers/gpu/drm/gma500/oaktrail_crtc.c:175: warning: 'clock.m2' may be used uninitialized in this function
>>> drivers/gpu/drm/gma500/oaktrail_crtc.c:175: warning: 'clock.m1' may be used uninitialized in this function
>>> drivers/gpu/drm/gma500/oaktrail_crtc.c: In function 'mrst_lvds_find_best_pll':
>>> drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.p' may be used uninitialized in this function
>>> drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.vco' may be used uninitialized in this function
>>> drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.p2' may be used uninitialized in this function
>>> drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.m2' may be used uninitialized in this function
>>> drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.m1' may be used uninitialized in this function
>>> drivers/gpu/drm/gma500/oaktrail_crtc.c:208: warning: 'clock.n' may be used uninitialized in this function
>>>
>>> This adds an initialization at declaration time to avoid the warning
>>> and make it well-defined on all compiler versions.
>>>
>>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>>
>> Applied to drm-misc-next-fixes for 4.16, thx for your patch.
>
> Thanks!
>
>> Aside: Still don't want commit rights? :-)
>
> I think I'm fine without. While I do tend to have a backlog on DRM
> patches that I'd
> like to get merged, they are generally of the kind that I should not
> apply myself
> without the maintainer being involved in some form, and then they can commit
> it themselves.

Commit rights isn't for pushing unreviewed stuff (our scripts will
remind you of that if you try). But you could just volunteer someone
to review the entire pile and then push it, instead of nagging every
single slacking maintainer individually.
-Daniel

Patch

diff --git a/drivers/gpu/drm/gma500/oaktrail_crtc.c b/drivers/gpu/drm/gma500/oaktrail_crtc.c
index 0fff269d3fe6..b49fe79c3f44 100644
--- a/drivers/gpu/drm/gma500/oaktrail_crtc.c
+++ b/drivers/gpu/drm/gma500/oaktrail_crtc.c
@@ -134,7 +134,7 @@  static bool mrst_sdvo_find_best_pll(const struct gma_limit_t *limit,
 				    struct drm_crtc *crtc, int target,
 				    int refclk, struct gma_clock_t *best_clock)
 {
-	struct gma_clock_t clock;
+	struct gma_clock_t clock = {};
 	u32 target_vco, actual_freq;
 	s32 freq_error, min_error = 100000;
 
@@ -191,7 +191,7 @@  static bool mrst_lvds_find_best_pll(const struct gma_limit_t *limit,
 				    struct drm_crtc *crtc, int target,
 				    int refclk, struct gma_clock_t *best_clock)
 {
-	struct gma_clock_t clock;
+	struct gma_clock_t clock = {};
 	int err = target;
 
 	memset(best_clock, 0, sizeof(*best_clock));