On Wed, Oct 30, 2024 at 12:53:57PM +0300, Dan Carpenter wrote: > Hello Andy Shevchenko, > > Commit 14686836fb69 ("iio: light: isl29018: Replace a variant of > iio_get_acpi_device_name_and_data()") from Oct 24, 2024 (linux-next), > leads to the following Smatch static checker warning: > > drivers/iio/light/isl29018.c:724 isl29018_probe() error: uninitialized symbol 'ddata'. > drivers/iio/light/ltr501.c:1514 ltr501_probe() error: uninitialized symbol 'ddata'. > > drivers/iio/light/isl29018.c > 701 static int isl29018_probe(struct i2c_client *client) > 702 { > 703 const struct i2c_device_id *id = i2c_client_get_device_id(client); > 704 struct isl29018_chip *chip; > 705 struct iio_dev *indio_dev; > 706 const void *ddata; > 707 const char *name; > 708 int dev_id; > 709 int err; > 710 > 711 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*chip)); > 712 if (!indio_dev) > 713 return -ENOMEM; > 714 > 715 chip = iio_priv(indio_dev); > 716 > 717 i2c_set_clientdata(client, indio_dev); > 718 > 719 if (id) { > 720 name = id->name; > 721 dev_id = id->driver_data; > 722 } else { > 723 name = iio_get_acpi_device_name_and_data(&client->dev, &ddata); > --> 724 dev_id = (intptr_t)ddata; > > How do we know that iio_get_acpi_device_name_and_data() will succeed? Ideally we need to file &ddata with NULL in such case, but it will be equal to 0, so it only works with the chip_info in place. Let me look into this once more, thanks for the good catch! > 725 } > 726 > 727 mutex_init(&chip->lock); > 728 > 729 chip->type = dev_id; -- With Best Regards, Andy Shevchenko