Hi Uwe, kernel test robot noticed the following build warnings: url: https://github.com/intel-lab-lkp/linux/commits/Uwe-Kleine-K-nig/iio-adc-ad7124-Don-t-create-more-channels-than-the-hardware-is-capable-of/20241109-022036 base: 9852d85ec9d492ebef56dc5f229416c925758edc patch link: https://lore.kernel.org/r/20241108181813.272593-6-u.kleine-koenig%40baylibre.com patch subject: [PATCH 2/2] iio: adc: ad7124: Refuse invalid input specifiers config: i386-randconfig-141-20241109 (https://download.01.org/0day-ci/archive/20241109/202411090908.Ynrg4eS0-lkp@xxxxxxxxx/config) compiler: gcc-12 (Debian 12.2.0-14) 12.2.0 If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> | Closes: https://lore.kernel.org/r/202411090908.Ynrg4eS0-lkp@xxxxxxxxx/ smatch warnings: drivers/iio/adc/ad7124.c:874 ad7124_parse_channel_config() warn: passing zero to 'dev_err_probe' vim +/dev_err_probe +874 drivers/iio/adc/ad7124.c a6eaf02b82744b Jonathan Cameron 2024-02-18 824 static int ad7124_parse_channel_config(struct iio_dev *indio_dev, a6eaf02b82744b Jonathan Cameron 2024-02-18 825 struct device *dev) b3af341bbd9662 Stefan Popa 2018-11-13 826 { b3af341bbd9662 Stefan Popa 2018-11-13 827 struct ad7124_state *st = iio_priv(indio_dev); 7b8d045e497a04 Alexandru Tachici 2021-03-11 828 struct ad7124_channel_config *cfg; 7b8d045e497a04 Alexandru Tachici 2021-03-11 829 struct ad7124_channel *channels; b3af341bbd9662 Stefan Popa 2018-11-13 830 struct iio_chan_spec *chan; b3af341bbd9662 Stefan Popa 2018-11-13 831 unsigned int ain[2], channel = 0, tmp; b3af341bbd9662 Stefan Popa 2018-11-13 832 int ret; b3af341bbd9662 Stefan Popa 2018-11-13 833 a6eaf02b82744b Jonathan Cameron 2024-02-18 834 st->num_channels = device_get_child_node_count(dev); a6eaf02b82744b Jonathan Cameron 2024-02-18 835 if (!st->num_channels) a6eaf02b82744b Jonathan Cameron 2024-02-18 836 return dev_err_probe(dev, -ENODEV, "no channel children\n"); b3af341bbd9662 Stefan Popa 2018-11-13 837 b478bd5e22404e Uwe Kleine-König 2024-11-08 838 if (st->num_channels > AD7124_MAX_CHANNELS) { b478bd5e22404e Uwe Kleine-König 2024-11-08 839 dev_warn(dev, "Limit number of channels to " __stringify(AD7124_MAX_CHANNELS) "\n"); b478bd5e22404e Uwe Kleine-König 2024-11-08 840 st->num_channels = AD7124_MAX_CHANNELS; b478bd5e22404e Uwe Kleine-König 2024-11-08 841 } b478bd5e22404e Uwe Kleine-König 2024-11-08 842 b3af341bbd9662 Stefan Popa 2018-11-13 843 chan = devm_kcalloc(indio_dev->dev.parent, st->num_channels, b3af341bbd9662 Stefan Popa 2018-11-13 844 sizeof(*chan), GFP_KERNEL); b3af341bbd9662 Stefan Popa 2018-11-13 845 if (!chan) b3af341bbd9662 Stefan Popa 2018-11-13 846 return -ENOMEM; b3af341bbd9662 Stefan Popa 2018-11-13 847 7b8d045e497a04 Alexandru Tachici 2021-03-11 848 channels = devm_kcalloc(indio_dev->dev.parent, st->num_channels, sizeof(*channels), 7b8d045e497a04 Alexandru Tachici 2021-03-11 849 GFP_KERNEL); 7b8d045e497a04 Alexandru Tachici 2021-03-11 850 if (!channels) 1478a388f4baaa Mircea Caprioru 2019-06-25 851 return -ENOMEM; 1478a388f4baaa Mircea Caprioru 2019-06-25 852 b3af341bbd9662 Stefan Popa 2018-11-13 853 indio_dev->channels = chan; b3af341bbd9662 Stefan Popa 2018-11-13 854 indio_dev->num_channels = st->num_channels; 7b8d045e497a04 Alexandru Tachici 2021-03-11 855 st->channels = channels; b3af341bbd9662 Stefan Popa 2018-11-13 856 a6eaf02b82744b Jonathan Cameron 2024-02-18 857 device_for_each_child_node_scoped(dev, child) { a6eaf02b82744b Jonathan Cameron 2024-02-18 858 ret = fwnode_property_read_u32(child, "reg", &channel); b3af341bbd9662 Stefan Popa 2018-11-13 859 if (ret) a6eaf02b82744b Jonathan Cameron 2024-02-18 860 return ret; b3af341bbd9662 Stefan Popa 2018-11-13 861 a6eaf02b82744b Jonathan Cameron 2024-02-18 862 if (channel >= indio_dev->num_channels) a6eaf02b82744b Jonathan Cameron 2024-02-18 863 return dev_err_probe(dev, -EINVAL, f2a772c51206b0 Jonathan Cameron 2021-05-13 864 "Channel index >= number of channels\n"); f2a772c51206b0 Jonathan Cameron 2021-05-13 865 a6eaf02b82744b Jonathan Cameron 2024-02-18 866 ret = fwnode_property_read_u32_array(child, "diff-channels", b3af341bbd9662 Stefan Popa 2018-11-13 867 ain, 2); b3af341bbd9662 Stefan Popa 2018-11-13 868 if (ret) a6eaf02b82744b Jonathan Cameron 2024-02-18 869 return ret; b3af341bbd9662 Stefan Popa 2018-11-13 870 4112b30ba58b5c Uwe Kleine-König 2024-11-08 871 if (!ad7124_valid_input_select(ain[0], st->chip_info) || 4112b30ba58b5c Uwe Kleine-König 2024-11-08 872 !ad7124_valid_input_select(ain[1], st->chip_info)) 4112b30ba58b5c Uwe Kleine-König 2024-11-08 873 return dev_err_probe(dev, ret, s/ret/-EINVAL/? 4112b30ba58b5c Uwe Kleine-König 2024-11-08 @874 "diff-channels property of %pfwP contains invalid data\n", child); 4112b30ba58b5c Uwe Kleine-König 2024-11-08 875 7b8d045e497a04 Alexandru Tachici 2021-03-11 876 st->channels[channel].nr = channel; 7b8d045e497a04 Alexandru Tachici 2021-03-11 877 st->channels[channel].ain = AD7124_CHANNEL_AINP(ain[0]) | b3af341bbd9662 Stefan Popa 2018-11-13 878 AD7124_CHANNEL_AINM(ain[1]); 7b8d045e497a04 Alexandru Tachici 2021-03-11 879 61cbfb5368dd50 Dumitru Ceclan 2024-08-06 880 cfg = &st->channels[channel].cfg; a6eaf02b82744b Jonathan Cameron 2024-02-18 881 cfg->bipolar = fwnode_property_read_bool(child, "bipolar"); b3af341bbd9662 Stefan Popa 2018-11-13 882 a6eaf02b82744b Jonathan Cameron 2024-02-18 883 ret = fwnode_property_read_u32(child, "adi,reference-select", &tmp); b3af341bbd9662 Stefan Popa 2018-11-13 884 if (ret) 7b8d045e497a04 Alexandru Tachici 2021-03-11 885 cfg->refsel = AD7124_INT_REF; b3af341bbd9662 Stefan Popa 2018-11-13 886 else 7b8d045e497a04 Alexandru Tachici 2021-03-11 887 cfg->refsel = tmp; b3af341bbd9662 Stefan Popa 2018-11-13 888 a6eaf02b82744b Jonathan Cameron 2024-02-18 889 cfg->buf_positive = a6eaf02b82744b Jonathan Cameron 2024-02-18 890 fwnode_property_read_bool(child, "adi,buffered-positive"); a6eaf02b82744b Jonathan Cameron 2024-02-18 891 cfg->buf_negative = a6eaf02b82744b Jonathan Cameron 2024-02-18 892 fwnode_property_read_bool(child, "adi,buffered-negative"); 0eaecea6e4878a Mircea Caprioru 2019-06-25 893 d7857e4ee1ba69 Alexandru Tachici 2019-12-20 894 chan[channel] = ad7124_channel_template; d7857e4ee1ba69 Alexandru Tachici 2019-12-20 895 chan[channel].address = channel; d7857e4ee1ba69 Alexandru Tachici 2019-12-20 896 chan[channel].scan_index = channel; d7857e4ee1ba69 Alexandru Tachici 2019-12-20 897 chan[channel].channel = ain[0]; d7857e4ee1ba69 Alexandru Tachici 2019-12-20 898 chan[channel].channel2 = ain[1]; b3af341bbd9662 Stefan Popa 2018-11-13 899 } b3af341bbd9662 Stefan Popa 2018-11-13 900 b3af341bbd9662 Stefan Popa 2018-11-13 901 return 0; b3af341bbd9662 Stefan Popa 2018-11-13 902 } -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki