]> git.itanic.dy.fi Git - linux-stable/commitdiff
Input: mcs-touchkey - fix uninitialized use of error in mcs_touchkey_probe()
authorNathan Chancellor <nathan@kernel.org>
Tue, 25 Jul 2023 15:37:56 +0000 (08:37 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 25 Jul 2023 16:51:13 +0000 (09:51 -0700)
Clang warns (or errors with CONFIG_WERROR=y):

  drivers/input/keyboard/mcs_touchkey.c:149:49: error: variable 'error' is uninitialized when used here [-Werror,-Wuninitialized]
    149 |                 dev_err(&client->dev, "i2c read error[%d]\n", error);
        |                                                               ^~~~~
  include/linux/dev_printk.h:144:65: note: expanded from macro 'dev_err'
    144 |         dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__)
        |                                                                        ^~~~~~~~~~~
  include/linux/dev_printk.h:110:23: note: expanded from macro 'dev_printk_index_wrap'
    110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
        |                                     ^~~~~~~~~~~
  drivers/input/keyboard/mcs_touchkey.c:110:11: note: initialize the variable 'error' to silence this warning
    110 |         int error;
        |                  ^
        |                   = 0
  1 error generated.

A refactoring updated the error handling in this block but did not
update the dev_err() call to use fw_ver instead of error. Do so now to
fix the warning and avoid printing uninitialized memory.

Closes: https://github.com/ClangBuiltLinux/linux/issues/1893
Fixes: e175eae16c1b ("Input: mcs-touchkey - convert to use devm_* api")
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Link: https://lore.kernel.org/r/20230725-mcs_touchkey-fix-wuninitialized-v1-1-615db39af51c@kernel.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/keyboard/mcs_touchkey.c

index f25e2b20e271503faacfce961075d9f0bb3ff62b..2410f676c7f95e9074afb7252cd86af6350a3259 100644 (file)
@@ -146,7 +146,7 @@ static int mcs_touchkey_probe(struct i2c_client *client)
 
        fw_ver = i2c_smbus_read_byte_data(client, fw_reg);
        if (fw_ver < 0) {
-               dev_err(&client->dev, "i2c read error[%d]\n", error);
+               dev_err(&client->dev, "i2c read error[%d]\n", fw_ver);
                return fw_ver;
        }
        dev_info(&client->dev, "Firmware version: %d\n", fw_ver);