diff mbox series

drm: omapdrm: Do not use helper unininitialized in omap_fbdev_init()

Message ID 20230224-omapdrm-wsometimes-uninitialized-v1-1-3fec8906ee3a@kernel.org (mailing list archive)
State New, archived
Headers show
Series drm: omapdrm: Do not use helper unininitialized in omap_fbdev_init() | expand

Commit Message

Nathan Chancellor Feb. 24, 2023, 5:25 p.m. UTC
Clang warns (or errors with CONFIG_WERROR):

  ../drivers/gpu/drm/omapdrm/omap_fbdev.c:235:6: error: variable 'helper' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
          if (!fbdev)
              ^~~~~~
  ../drivers/gpu/drm/omapdrm/omap_fbdev.c:259:26: note: uninitialized use occurs here
          drm_fb_helper_unprepare(helper);
                                  ^~~~~~
  ../drivers/gpu/drm/omapdrm/omap_fbdev.c:235:2: note: remove the 'if' if its condition is always false
          if (!fbdev)
          ^~~~~~~~~~~
  ../drivers/gpu/drm/omapdrm/omap_fbdev.c:228:30: note: initialize the variable 'helper' to silence this warning
          struct drm_fb_helper *helper;
                                      ^
                                       = NULL
  1 error generated.

Return early, as there is nothing for the function to do if memory
cannot be allocated. There is no point in adding another label to just
emit the warning at the end of the function in this case, as memory
allocation failures are already logged.

Fixes: 3fb1f62f80a1 ("drm/fb-helper: Remove drm_fb_helper_unprepare() from drm_fb_helper_fini()")
Link: https://github.com/ClangBuiltLinux/linux/issues/1809
Link: https://lore.kernel.org/oe-kbuild-all/202302250058.fYTe9aTP-lkp@intel.com/
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
---
This is currently showing in mainline so I believe this should go to
drm-misc-next-fixes.
---
 drivers/gpu/drm/omapdrm/omap_fbdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


---
base-commit: e034b8a18d4badceecb672c58b488bad1e901d95
change-id: 20230224-omapdrm-wsometimes-uninitialized-0125f7692fbb

Best regards,

Comments

Thomas Zimmermann Feb. 27, 2023, 9:01 a.m. UTC | #1
Hi

Am 24.02.23 um 18:25 schrieb Nathan Chancellor:
> Clang warns (or errors with CONFIG_WERROR):
> 
>    ../drivers/gpu/drm/omapdrm/omap_fbdev.c:235:6: error: variable 'helper' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
>            if (!fbdev)
>                ^~~~~~
>    ../drivers/gpu/drm/omapdrm/omap_fbdev.c:259:26: note: uninitialized use occurs here
>            drm_fb_helper_unprepare(helper);
>                                    ^~~~~~
>    ../drivers/gpu/drm/omapdrm/omap_fbdev.c:235:2: note: remove the 'if' if its condition is always false
>            if (!fbdev)
>            ^~~~~~~~~~~
>    ../drivers/gpu/drm/omapdrm/omap_fbdev.c:228:30: note: initialize the variable 'helper' to silence this warning
>            struct drm_fb_helper *helper;
>                                        ^
>                                         = NULL
>    1 error generated.
> 
> Return early, as there is nothing for the function to do if memory
> cannot be allocated. There is no point in adding another label to just
> emit the warning at the end of the function in this case, as memory
> allocation failures are already logged.
> 
> Fixes: 3fb1f62f80a1 ("drm/fb-helper: Remove drm_fb_helper_unprepare() from drm_fb_helper_fini()")
> Link: https://github.com/ClangBuiltLinux/linux/issues/1809
> Link: https://lore.kernel.org/oe-kbuild-all/202302250058.fYTe9aTP-lkp@intel.com/
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: Nathan Chancellor <nathan@kernel.org>

Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>

> ---
> This is currently showing in mainline so I believe this should go to
> drm-misc-next-fixes.

This tree is only active from -rc6 to sometime during the merge window. 
I'll add your patch to drm-misc-fixes ASAP.

Best regards
Thomas

> ---
>   drivers/gpu/drm/omapdrm/omap_fbdev.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/omap_fbdev.c b/drivers/gpu/drm/omapdrm/omap_fbdev.c
> index 84429728347f..a6c8542087ec 100644
> --- a/drivers/gpu/drm/omapdrm/omap_fbdev.c
> +++ b/drivers/gpu/drm/omapdrm/omap_fbdev.c
> @@ -233,7 +233,7 @@ void omap_fbdev_init(struct drm_device *dev)
>   
>   	fbdev = kzalloc(sizeof(*fbdev), GFP_KERNEL);
>   	if (!fbdev)
> -		goto fail;
> +		return;
>   
>   	INIT_WORK(&fbdev->work, pan_worker);
>   
> 
> ---
> base-commit: e034b8a18d4badceecb672c58b488bad1e901d95
> change-id: 20230224-omapdrm-wsometimes-uninitialized-0125f7692fbb
> 
> Best regards,
Tomi Valkeinen Feb. 27, 2023, 1:48 p.m. UTC | #2
On 27/02/2023 11:01, Thomas Zimmermann wrote:
> Hi
> 
> Am 24.02.23 um 18:25 schrieb Nathan Chancellor:
>> Clang warns (or errors with CONFIG_WERROR):
>>
>>    ../drivers/gpu/drm/omapdrm/omap_fbdev.c:235:6: error: variable 
>> 'helper' is used uninitialized whenever 'if' condition is true 
>> [-Werror,-Wsometimes-uninitialized]
>>            if (!fbdev)
>>                ^~~~~~
>>    ../drivers/gpu/drm/omapdrm/omap_fbdev.c:259:26: note: uninitialized 
>> use occurs here
>>            drm_fb_helper_unprepare(helper);
>>                                    ^~~~~~
>>    ../drivers/gpu/drm/omapdrm/omap_fbdev.c:235:2: note: remove the 
>> 'if' if its condition is always false
>>            if (!fbdev)
>>            ^~~~~~~~~~~
>>    ../drivers/gpu/drm/omapdrm/omap_fbdev.c:228:30: note: initialize 
>> the variable 'helper' to silence this warning
>>            struct drm_fb_helper *helper;
>>                                        ^
>>                                         = NULL
>>    1 error generated.
>>
>> Return early, as there is nothing for the function to do if memory
>> cannot be allocated. There is no point in adding another label to just
>> emit the warning at the end of the function in this case, as memory
>> allocation failures are already logged.
>>
>> Fixes: 3fb1f62f80a1 ("drm/fb-helper: Remove drm_fb_helper_unprepare() 
>> from drm_fb_helper_fini()")
>> Link: https://github.com/ClangBuiltLinux/linux/issues/1809
>> Link: 
>> https://lore.kernel.org/oe-kbuild-all/202302250058.fYTe9aTP-lkp@intel.com/
>> Reported-by: kernel test robot <lkp@intel.com>
>> Signed-off-by: Nathan Chancellor <nathan@kernel.org>
> 
> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
> 
>> ---
>> This is currently showing in mainline so I believe this should go to
>> drm-misc-next-fixes.
> 
> This tree is only active from -rc6 to sometime during the merge window. 
> I'll add your patch to drm-misc-fixes ASAP.

If it's not too late:

Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

  Tomi
Thomas Zimmermann Feb. 28, 2023, 9:14 a.m. UTC | #3
Added to drm-misc-next-fixes.

Am 24.02.23 um 18:25 schrieb Nathan Chancellor:
> Clang warns (or errors with CONFIG_WERROR):
> 
>    ../drivers/gpu/drm/omapdrm/omap_fbdev.c:235:6: error: variable 'helper' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
>            if (!fbdev)
>                ^~~~~~
>    ../drivers/gpu/drm/omapdrm/omap_fbdev.c:259:26: note: uninitialized use occurs here
>            drm_fb_helper_unprepare(helper);
>                                    ^~~~~~
>    ../drivers/gpu/drm/omapdrm/omap_fbdev.c:235:2: note: remove the 'if' if its condition is always false
>            if (!fbdev)
>            ^~~~~~~~~~~
>    ../drivers/gpu/drm/omapdrm/omap_fbdev.c:228:30: note: initialize the variable 'helper' to silence this warning
>            struct drm_fb_helper *helper;
>                                        ^
>                                         = NULL
>    1 error generated.
> 
> Return early, as there is nothing for the function to do if memory
> cannot be allocated. There is no point in adding another label to just
> emit the warning at the end of the function in this case, as memory
> allocation failures are already logged.
> 
> Fixes: 3fb1f62f80a1 ("drm/fb-helper: Remove drm_fb_helper_unprepare() from drm_fb_helper_fini()")
> Link: https://github.com/ClangBuiltLinux/linux/issues/1809
> Link: https://lore.kernel.org/oe-kbuild-all/202302250058.fYTe9aTP-lkp@intel.com/
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: Nathan Chancellor <nathan@kernel.org>
> ---
> This is currently showing in mainline so I believe this should go to
> drm-misc-next-fixes.
> ---
>   drivers/gpu/drm/omapdrm/omap_fbdev.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/omap_fbdev.c b/drivers/gpu/drm/omapdrm/omap_fbdev.c
> index 84429728347f..a6c8542087ec 100644
> --- a/drivers/gpu/drm/omapdrm/omap_fbdev.c
> +++ b/drivers/gpu/drm/omapdrm/omap_fbdev.c
> @@ -233,7 +233,7 @@ void omap_fbdev_init(struct drm_device *dev)
>   
>   	fbdev = kzalloc(sizeof(*fbdev), GFP_KERNEL);
>   	if (!fbdev)
> -		goto fail;
> +		return;
>   
>   	INIT_WORK(&fbdev->work, pan_worker);
>   
> 
> ---
> base-commit: e034b8a18d4badceecb672c58b488bad1e901d95
> change-id: 20230224-omapdrm-wsometimes-uninitialized-0125f7692fbb
> 
> Best regards,
diff mbox series

Patch

diff --git a/drivers/gpu/drm/omapdrm/omap_fbdev.c b/drivers/gpu/drm/omapdrm/omap_fbdev.c
index 84429728347f..a6c8542087ec 100644
--- a/drivers/gpu/drm/omapdrm/omap_fbdev.c
+++ b/drivers/gpu/drm/omapdrm/omap_fbdev.c
@@ -233,7 +233,7 @@  void omap_fbdev_init(struct drm_device *dev)
 
 	fbdev = kzalloc(sizeof(*fbdev), GFP_KERNEL);
 	if (!fbdev)
-		goto fail;
+		return;
 
 	INIT_WORK(&fbdev->work, pan_worker);