]> www.infradead.org Git - users/jedix/linux-maple.git/commit
drm/sysfb: efidrm: Avoid clang -Wsometimes-uninitialized in efidrm_device_create()
authorNathan Chancellor <nathan@kernel.org>
Thu, 10 Apr 2025 17:43:08 +0000 (10:43 -0700)
committerThomas Zimmermann <tzimmermann@suse.de>
Fri, 11 Apr 2025 13:28:59 +0000 (15:28 +0200)
commit746375524bb6a93bc3ef7a3c2e8c916bfdfcb0b2
tree3fe523e5c3a4b4358d8713d89a2ffe9db8983821
parent6acbf71463f74838854ed9fcfc2af7bb9ee04ffa
drm/sysfb: efidrm: Avoid clang -Wsometimes-uninitialized in efidrm_device_create()

Clang warns (or errors with CONFIG_WERROR=y):

  drivers/gpu/drm/sysfb/efidrm.c:353:11: error: variable 'screen_base' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
    353 |         else if (mem_flags & EFI_MEMORY_WB)
        |                  ^~~~~~~~~~~~~~~~~~~~~~~~~
  drivers/gpu/drm/sysfb/efidrm.c:356:7: note: uninitialized use occurs here
    356 |         if (!screen_base)
        |              ^~~~~~~~~~~
  drivers/gpu/drm/sysfb/efidrm.c:353:7: note: remove the 'if' if its condition is always true
    353 |         else if (mem_flags & EFI_MEMORY_WB)
        |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    354 |                 screen_base = devm_memremap(&pdev->dev, mem->start, resource_size(mem),
  drivers/gpu/drm/sysfb/efidrm.c:261:27: note: initialize the variable 'screen_base' to silence this warning
    261 |         void __iomem *screen_base;
        |                                  ^
        |                                   = NULL

efidrm_get_mem_flags() can only return a mask that has at least one of
the tested values set so the else case is impossible but clang's static
analysis runs before inlining so it cannot know that.

Initialize screen_base to NULL and add a defensive error message in case
mem_flags were ever returned without one of the four valid values.

Fixes: 32ae90c66fb6 ("drm/sysfb: Add efidrm for EFI displays")
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://lore.kernel.org/r/20250410-efidrm-avoid-uninit-screen_info-warning-v2-1-b79646f58c24@kernel.org
drivers/gpu/drm/sysfb/efidrm.c