From: Dan Carpenter <dan.carpenter@linaro.org>
To: oe-kbuild@lists.linux.dev,
"Uwe Kleine-König" <u.kleine-koenig@baylibre.com>,
"Lars-Peter Clausen" <lars@metafoo.de>,
"Michael Hennerich" <Michael.Hennerich@analog.com>,
"Jonathan Cameron" <jic23@kernel.org>
Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev,
"Mircea Caprioru" <mircea.caprioru@analog.com>,
linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org,
"Uwe Kleine-König" <u.kleine-koenig@baylibe.com>
Subject: Re: [PATCH 2/2] iio: adc: ad7124: Refuse invalid input specifiers
Date: Mon, 11 Nov 2024 12:15:45 +0300 [thread overview]
Message-ID: <bb25249b-62b8-4d7f-9ef3-cb5e1f8674ba@stanley.mountain> (raw)
In-Reply-To: <20241108181813.272593-6-u.kleine-koenig@baylibre.com>
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@intel.com/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@intel.com>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202411090908.Ynrg4eS0-lkp@intel.com/
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
next prev parent reply other threads:[~2024-11-11 9:15 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-08 18:18 [PATCH 0/2] iio: adc: ad7124: Implement input validation Uwe Kleine-König
2024-11-08 18:18 ` [PATCH 1/2] iio: adc: ad7124: Don't create more channels than the hardware is capable of Uwe Kleine-König
2024-11-08 18:52 ` David Lechner
2024-11-11 12:08 ` Uwe Kleine-König
2024-11-11 14:21 ` David Lechner
2024-11-23 15:01 ` Jonathan Cameron
2024-11-11 10:37 ` Nuno Sá
2024-11-11 11:53 ` Uwe Kleine-König
2024-11-11 14:32 ` Nuno Sá
2024-11-08 18:18 ` [PATCH 2/2] iio: adc: ad7124: Refuse invalid input specifiers Uwe Kleine-König
2024-11-11 9:15 ` Dan Carpenter [this message]
2024-11-11 12:12 ` Uwe Kleine-König
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bb25249b-62b8-4d7f-9ef3-cb5e1f8674ba@stanley.mountain \
--to=dan.carpenter@linaro.org \
--cc=Michael.Hennerich@analog.com \
--cc=jic23@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkp@intel.com \
--cc=mircea.caprioru@analog.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=oe-kbuild@lists.linux.dev \
--cc=u.kleine-koenig@baylibe.com \
--cc=u.kleine-koenig@baylibre.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox