2022-02-08 19:29:26

by Nathan Chancellor

[permalink] [raw]
Subject: [PATCH] drm/stm: Avoid using val uninitialized in ltdc_set_ycbcr_config()

Clang warns:

drivers/gpu/drm/stm/ltdc.c:625:2: warning: variable 'val' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized]
default:
^~~~~~~
drivers/gpu/drm/stm/ltdc.c:635:2: note: uninitialized use occurs here
val |= LxPCR_YCEN;
^~~
drivers/gpu/drm/stm/ltdc.c:600:9: note: initialize the variable 'val' to silence this warning
u32 val;
^
= 0
1 warning generated.

Use a return instead of break in the default case to fix the warning.
Add an error message so that this return is not silent, which could hide
issues in the future.

Fixes: 484e72d3146b ("drm/stm: ltdc: add support of ycbcr pixel formats")
Link: https://github.com/ClangBuiltLinux/linux/issues/1575
Signed-off-by: Nathan Chancellor <[email protected]>
---
drivers/gpu/drm/stm/ltdc.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
index 5eeb32c9c9ce..447ddde1786c 100644
--- a/drivers/gpu/drm/stm/ltdc.c
+++ b/drivers/gpu/drm/stm/ltdc.c
@@ -624,7 +624,8 @@ static inline void ltdc_set_ycbcr_config(struct drm_plane *plane, u32 drm_pix_fm
break;
default:
/* RGB or not a YCbCr supported format */
- break;
+ drm_err(plane->dev, "Unsupported pixel format: %u\n", drm_pix_fmt);
+ return;
}

/* Enable limited range */

base-commit: 542898c5aa5c6a3179dffb1d1606884a63f75fed
--
2.35.1



2022-02-09 08:12:23

by Nick Desaulniers

[permalink] [raw]
Subject: Re: [PATCH] drm/stm: Avoid using val uninitialized in ltdc_set_ycbcr_config()

On Mon, Feb 7, 2022 at 8:53 AM Nathan Chancellor <[email protected]> wrote:
>
> Clang warns:
>
> drivers/gpu/drm/stm/ltdc.c:625:2: warning: variable 'val' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized]
> default:
> ^~~~~~~
> drivers/gpu/drm/stm/ltdc.c:635:2: note: uninitialized use occurs here
> val |= LxPCR_YCEN;
> ^~~
> drivers/gpu/drm/stm/ltdc.c:600:9: note: initialize the variable 'val' to silence this warning
> u32 val;
> ^
> = 0
> 1 warning generated.
>
> Use a return instead of break in the default case to fix the warning.
> Add an error message so that this return is not silent, which could hide
> issues in the future.
>
> Fixes: 484e72d3146b ("drm/stm: ltdc: add support of ycbcr pixel formats")
> Link: https://github.com/ClangBuiltLinux/linux/issues/1575
> Signed-off-by: Nathan Chancellor <[email protected]>
> ---
> drivers/gpu/drm/stm/ltdc.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
> index 5eeb32c9c9ce..447ddde1786c 100644
> --- a/drivers/gpu/drm/stm/ltdc.c
> +++ b/drivers/gpu/drm/stm/ltdc.c
> @@ -624,7 +624,8 @@ static inline void ltdc_set_ycbcr_config(struct drm_plane *plane, u32 drm_pix_fm
> break;
> default:
> /* RGB or not a YCbCr supported format */
> - break;
> + drm_err(plane->dev, "Unsupported pixel format: %u\n", drm_pix_fmt);

This is fine, but in the future you should add an explicit
#include <drm/drm_print.h>
to avoid implicit header dependencies (like the ones that Mingo is
trying to detangle) for the declaration of drm_err. `drm_vprintf`
needs it, too.

Reviewed-by: Nick Desaulniers <[email protected]>

> + return;
> }
>
> /* Enable limited range */
>
> base-commit: 542898c5aa5c6a3179dffb1d1606884a63f75fed
> --
> 2.35.1
>


--
Thanks,
~Nick Desaulniers

2022-02-09 10:18:59

by Raphael Gallais-Pou

[permalink] [raw]
Subject: Re: [PATCH] drm/stm: Avoid using val uninitialized in ltdc_set_ycbcr_config()

Hello Nathan,


On 2/7/22 17:53, Nathan Chancellor wrote:
> Clang warns:
>
> drivers/gpu/drm/stm/ltdc.c:625:2: warning: variable 'val' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized]
> default:
> ^~~~~~~
> drivers/gpu/drm/stm/ltdc.c:635:2: note: uninitialized use occurs here
> val |= LxPCR_YCEN;
> ^~~
> drivers/gpu/drm/stm/ltdc.c:600:9: note: initialize the variable 'val' to silence this warning
> u32 val;
> ^
> = 0
> 1 warning generated.
>
> Use a return instead of break in the default case to fix the warning.
> Add an error message so that this return is not silent, which could hide
> issues in the future.
>
> Fixes: 484e72d3146b ("drm/stm: ltdc: add support of ycbcr pixel formats")
> Link: https://github.com/ClangBuiltLinux/linux/issues/1575
> Signed-off-by: Nathan Chancellor <[email protected]>
> ---
> drivers/gpu/drm/stm/ltdc.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)


Reviewed-by: Raphael Gallais-Pou <[email protected]>


Thanks,

Raphaƫl


2022-02-09 10:49:48

by Yannick Fertre

[permalink] [raw]
Subject: Re: [PATCH] drm/stm: Avoid using val uninitialized in ltdc_set_ycbcr_config()

Hi Nathan,
Thenks for the patch.

Acked-by: Yannick Fertre <[email protected]>

Best regards

On 2/7/22 17:53, Nathan Chancellor wrote:
> Clang warns:
>
> drivers/gpu/drm/stm/ltdc.c:625:2: warning: variable 'val' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized]
> default:
> ^~~~~~~
> drivers/gpu/drm/stm/ltdc.c:635:2: note: uninitialized use occurs here
> val |= LxPCR_YCEN;
> ^~~
> drivers/gpu/drm/stm/ltdc.c:600:9: note: initialize the variable 'val' to silence this warning
> u32 val;
> ^
> = 0
> 1 warning generated.
>
> Use a return instead of break in the default case to fix the warning.
> Add an error message so that this return is not silent, which could hide
> issues in the future.
>
> Fixes: 484e72d3146b ("drm/stm: ltdc: add support of ycbcr pixel formats")
> Link: https://github.com/ClangBuiltLinux/linux/issues/1575
> Signed-off-by: Nathan Chancellor <[email protected]>
> ---
> drivers/gpu/drm/stm/ltdc.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
> index 5eeb32c9c9ce..447ddde1786c 100644
> --- a/drivers/gpu/drm/stm/ltdc.c
> +++ b/drivers/gpu/drm/stm/ltdc.c
> @@ -624,7 +624,8 @@ static inline void ltdc_set_ycbcr_config(struct drm_plane *plane, u32 drm_pix_fm
> break;
> default:
> /* RGB or not a YCbCr supported format */
> - break;
> + drm_err(plane->dev, "Unsupported pixel format: %u\n", drm_pix_fmt);
> + return;
> }
>
> /* Enable limited range */
>
> base-commit: 542898c5aa5c6a3179dffb1d1606884a63f75fed

2022-02-22 13:10:01

by Philippe CORNU

[permalink] [raw]
Subject: Re: [PATCH] drm/stm: Avoid using val uninitialized in ltdc_set_ycbcr_config()



On 2/7/22 8:44 PM, Nick Desaulniers wrote:
> On Mon, Feb 7, 2022 at 8:53 AM Nathan Chancellor <[email protected]> wrote:
>>
>> Clang warns:
>>
>> drivers/gpu/drm/stm/ltdc.c:625:2: warning: variable 'val' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized]
>> default:
>> ^~~~~~~
>> drivers/gpu/drm/stm/ltdc.c:635:2: note: uninitialized use occurs here
>> val |= LxPCR_YCEN;
>> ^~~
>> drivers/gpu/drm/stm/ltdc.c:600:9: note: initialize the variable 'val' to silence this warning
>> u32 val;
>> ^
>> = 0
>> 1 warning generated.
>>
>> Use a return instead of break in the default case to fix the warning.
>> Add an error message so that this return is not silent, which could hide
>> issues in the future.
>>
>> Fixes: 484e72d3146b ("drm/stm: ltdc: add support of ycbcr pixel formats")
>> Link: https://github.com/ClangBuiltLinux/linux/issues/1575
>> Signed-off-by: Nathan Chancellor <[email protected]>
>> ---
>> drivers/gpu/drm/stm/ltdc.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
>> index 5eeb32c9c9ce..447ddde1786c 100644
>> --- a/drivers/gpu/drm/stm/ltdc.c
>> +++ b/drivers/gpu/drm/stm/ltdc.c
>> @@ -624,7 +624,8 @@ static inline void ltdc_set_ycbcr_config(struct drm_plane *plane, u32 drm_pix_fm
>> break;
>> default:
>> /* RGB or not a YCbCr supported format */
>> - break;
>> + drm_err(plane->dev, "Unsupported pixel format: %u\n", drm_pix_fmt);
>
> This is fine, but in the future you should add an explicit
> #include <drm/drm_print.h>
> to avoid implicit header dependencies (like the ones that Mingo is
> trying to detangle) for the declaration of drm_err. `drm_vprintf`
> needs it, too.
>
> Reviewed-by: Nick Desaulniers <[email protected]>
>

Hi Nick,
and thank you for having pointing this.

Hi Nathan,
May I ask you please to update your patch changing drm_err(plane->dev, )
with DRM_ERROR().


Big thank you,

Philippe :-)



>> + return;
>> }
>>
>> /* Enable limited range */
>>
>> base-commit: 542898c5aa5c6a3179dffb1d1606884a63f75fed
>> --
>> 2.35.1
>>
>
>

2022-02-22 16:07:59

by Nathan Chancellor

[permalink] [raw]
Subject: Re: [PATCH] drm/stm: Avoid using val uninitialized in ltdc_set_ycbcr_config()

On Tue, Feb 22, 2022 at 11:54:04AM +0100, Philippe CORNU wrote:
>
>
> On 2/7/22 8:44 PM, Nick Desaulniers wrote:
> > On Mon, Feb 7, 2022 at 8:53 AM Nathan Chancellor <[email protected]> wrote:
> > >
> > > Clang warns:
> > >
> > > drivers/gpu/drm/stm/ltdc.c:625:2: warning: variable 'val' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized]
> > > default:
> > > ^~~~~~~
> > > drivers/gpu/drm/stm/ltdc.c:635:2: note: uninitialized use occurs here
> > > val |= LxPCR_YCEN;
> > > ^~~
> > > drivers/gpu/drm/stm/ltdc.c:600:9: note: initialize the variable 'val' to silence this warning
> > > u32 val;
> > > ^
> > > = 0
> > > 1 warning generated.
> > >
> > > Use a return instead of break in the default case to fix the warning.
> > > Add an error message so that this return is not silent, which could hide
> > > issues in the future.
> > >
> > > Fixes: 484e72d3146b ("drm/stm: ltdc: add support of ycbcr pixel formats")
> > > Link: https://github.com/ClangBuiltLinux/linux/issues/1575
> > > Signed-off-by: Nathan Chancellor <[email protected]>
> > > ---
> > > drivers/gpu/drm/stm/ltdc.c | 3 ++-
> > > 1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
> > > index 5eeb32c9c9ce..447ddde1786c 100644
> > > --- a/drivers/gpu/drm/stm/ltdc.c
> > > +++ b/drivers/gpu/drm/stm/ltdc.c
> > > @@ -624,7 +624,8 @@ static inline void ltdc_set_ycbcr_config(struct drm_plane *plane, u32 drm_pix_fm
> > > break;
> > > default:
> > > /* RGB or not a YCbCr supported format */
> > > - break;
> > > + drm_err(plane->dev, "Unsupported pixel format: %u\n", drm_pix_fmt);
> >
> > This is fine, but in the future you should add an explicit
> > #include <drm/drm_print.h>
> > to avoid implicit header dependencies (like the ones that Mingo is
> > trying to detangle) for the declaration of drm_err. `drm_vprintf`
> > needs it, too.
> >
> > Reviewed-by: Nick Desaulniers <[email protected]>
> >
>
> Hi Nick,
> and thank you for having pointing this.
>
> Hi Nathan,
> May I ask you please to update your patch changing drm_err(plane->dev, )
> with DRM_ERROR().

Sure thing, v2 has been sent:

https://lore.kernel.org/r/[email protected]/

I used drm_err() as I saw DRM_ERROR() was deprecated but I get internal
driver consistency is important.

Cheers,
Nathan

> Big thank you,
>
> Philippe :-)
>
>
>
> > > + return;
> > > }
> > >
> > > /* Enable limited range */
> > >
> > > base-commit: 542898c5aa5c6a3179dffb1d1606884a63f75fed
> > > --
> > > 2.35.1
> > >
> >
> >