Clang warns (or errors with CONFIG_WERROR=y):

  drivers/gpu/drm/panel/panel-himax-hx8279.c:838:6: error: variable 
'goa_even_valid' is used uninitialized whenever 'if' condition is false 
[-Werror,-Wsometimes-uninitialized]
    838 |         if (num_zero == ARRAY_SIZE(desc->goa_even_timing))
        |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  drivers/gpu/drm/panel/panel-himax-hx8279.c:842:23: note: uninitialized use 
occurs here
    842 |         if (goa_odd_valid != goa_even_valid)
        |                              ^~~~~~~~~~~~~~
  drivers/gpu/drm/panel/panel-himax-hx8279.c:838:2: note: remove the 'if' if 
its condition is always true
    838 |         if (num_zero == ARRAY_SIZE(desc->goa_even_timing))
        |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    839 |                 goa_even_valid = false;
  drivers/gpu/drm/panel/panel-himax-hx8279.c:818:36: note: initialize the 
variable 'goa_even_valid' to silence this warning
    818 |         bool goa_odd_valid, goa_even_valid;
        |                                           ^
        |                                            = 0

Even though only the even valid variable gets flagged, both valid
variables appear to have the same issue of possibly being used
uninitialized if the if statement initializing them to false is not
taken.

Initialize both values to true to clear up the warning and remove any
possibility of encountering undefined behavior.

Fixes: 38d42c261389 ("drm: panel: Add driver for Himax HX8279 DDIC panels")
Signed-off-by: Nathan Chancellor <nat...@kernel.org>
---
 drivers/gpu/drm/panel/panel-himax-hx8279.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/panel/panel-himax-hx8279.c 
b/drivers/gpu/drm/panel/panel-himax-hx8279.c
index b48b350b62da..92f351e66c25 100644
--- a/drivers/gpu/drm/panel/panel-himax-hx8279.c
+++ b/drivers/gpu/drm/panel/panel-himax-hx8279.c
@@ -815,7 +815,7 @@ static int hx8279_check_gmux_config(struct hx8279 *hx, 
struct device *dev)
 static int hx8279_check_goa_config(struct hx8279 *hx, struct device *dev)
 {
        const struct hx8279_panel_desc *desc = hx->desc;
-       bool goa_odd_valid, goa_even_valid;
+       bool goa_odd_valid = true, goa_even_valid = true;
        int i, num_zero, num_clr = 0;
 
        /* Up to 4 zero values is a valid configuration. Check them all. */

---
base-commit: dcbd5dcc956e2331414fd7020b4655df08deeb87
change-id: 20250422-panel-himax-hx8279-fix-sometimes-uninitialized-207354fb930c

Best regards,
-- 
Nathan Chancellor <nat...@kernel.org>

Reply via email to