[ I sent this a couple weeks back, but it turns out that mutt + msmtp has been silently eating my emails instead of sending them so I'm resending two weeks of email. -dan ] Hello Chris Morgan, The patch 66603243f528: "Input: add driver for Hynitron cstxxx touchscreens" from Oct 28, 2022, leads to the following Smatch static checker warning: drivers/input/touchscreen/hynitron_cstxxx.c:238 cst3xx_bootloader_enter() error: uninitialized symbol 'tmp'. drivers/input/touchscreen/hynitron_cstxxx.c 209 static int cst3xx_bootloader_enter(struct i2c_client *client) 210 { 211 int err; 212 u8 retry; 213 u32 tmp; 214 unsigned char buf[3]; 215 216 for (retry = 0; retry < 5; retry++) { 217 hyn_reset_proc(client, (7 + retry)); I would have changed this to a while (retry--) { loop except the retry value probably matters here. 218 /* set cmd to enter program mode */ 219 put_unaligned_le24(CST3XX_BOOTLDR_PROG_CMD, buf); 220 err = cst3xx_i2c_write(client, buf, 3); 221 if (err) 222 continue; 223 224 usleep_range(2000, 2500); 225 226 /* check whether in program mode */ 227 err = cst3xx_i2c_read_register(client, 228 CST3XX_BOOTLDR_PROG_CHK_REG, 229 buf, 1); 230 if (err) 231 continue; 232 233 tmp = get_unaligned(buf); 234 if (tmp == CST3XX_BOOTLDR_CHK_VAL) 235 break; 236 } 237 --> 238 if (tmp != CST3XX_BOOTLDR_CHK_VAL) { This is a genuine bug. It should be checking if retry == 5 but maybe with a define instead of a magic 5. 239 dev_err(&client->dev, "%s unable to enter bootloader mode\n", 240 __func__); 241 return -ENODEV; 242 } 243 244 hyn_reset_proc(client, 40); 245 246 return 0; 247 } regards, dan carpenter