From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Dan Carpenter <dan.carpenter@linaro.org>
Cc: <oe-kbuild@lists.linux.dev>,
Dumitru Ceclan <dumitru.ceclan@analog.com>, <lkp@intel.com>,
<oe-kbuild-all@lists.linux.dev>, Nuno Sa <nuno.sa@analog.com>,
David Lechner <dlechner@baylibre.com>, <jic23@kernel.org>,
<linux-iio@vger.kernel.org>
Subject: Re: [jic23-iio:testing 15/61] drivers/iio/adc/ad7173.c:1254 ad7173_fw_parse_channel_config() error: uninitialized symbol 'is_current_chan'.
Date: Tue, 2 Jul 2024 09:42:04 +0100 [thread overview]
Message-ID: <20240702094204.0000312a@Huawei.com> (raw)
In-Reply-To: <fc29cd12-378f-420f-b076-92a1833907e5@suswa.mountain>
On Mon, 1 Jul 2024 17:30:57 +0200
Dan Carpenter <dan.carpenter@linaro.org> wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git testing
> head: e2afe21f9b0bfa3f188cd5a60940b07a85d65e9a
> commit: cfc4c76b75ab68a95976e0db725baff385c4136d [15/61] iio: adc: ad7173: Add support for AD411x devices
> config: x86_64-randconfig-161-20240623 (https://download.01.org/0day-ci/archive/20240623/202406232046.DKfBJq6o-lkp@intel.com/config)
> compiler: gcc-11 (Ubuntu 11.4.0-4ubuntu1) 11.4.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/202406232046.DKfBJq6o-lkp@intel.com/
>
> smatch warnings:
> drivers/iio/adc/ad7173.c:1254 ad7173_fw_parse_channel_config() error: uninitialized symbol 'is_current_chan'.
Thanks. Initializing to false or setting it in the else should do the job.
The IIO Tree is a complex mess of merges as the moment, so I'll apply a patch
on top. If anyone wants to spin one that would save me a few mins.
Jonathan
>
> vim +/is_current_chan +1254 drivers/iio/adc/ad7173.c
>
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1184 static int ad7173_fw_parse_channel_config(struct iio_dev *indio_dev)
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1185 {
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1186 struct ad7173_channel *chans_st_arr, *chan_st_priv;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1187 struct ad7173_state *st = iio_priv(indio_dev);
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1188 struct device *dev = indio_dev->dev.parent;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1189 struct iio_chan_spec *chan_arr, *chan;
> 87477bf7433028 Dumitru Ceclan 2024-06-07 1190 unsigned int ain[AD7173_NO_AINS_PER_CHANNEL], chan_index = 0;
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1191 int ref_sel, ret, is_current_chan, num_channels;
> 51d5a38b21113a Dumitru Ceclan 2024-06-07 1192
> 51d5a38b21113a Dumitru Ceclan 2024-06-07 1193 num_channels = device_get_child_node_count(dev);
> 51d5a38b21113a Dumitru Ceclan 2024-06-07 1194
> 51d5a38b21113a Dumitru Ceclan 2024-06-07 1195 if (st->info->has_temp)
> 51d5a38b21113a Dumitru Ceclan 2024-06-07 1196 num_channels++;
> 51d5a38b21113a Dumitru Ceclan 2024-06-07 1197
> 51d5a38b21113a Dumitru Ceclan 2024-06-07 1198 if (num_channels == 0)
> 51d5a38b21113a Dumitru Ceclan 2024-06-07 1199 return dev_err_probe(dev, -ENODATA, "No channels specified\n");
> 51d5a38b21113a Dumitru Ceclan 2024-06-07 1200
> 51d5a38b21113a Dumitru Ceclan 2024-06-07 1201 if (num_channels > st->info->num_channels)
> 51d5a38b21113a Dumitru Ceclan 2024-06-07 1202 return dev_err_probe(dev, -EINVAL,
> 51d5a38b21113a Dumitru Ceclan 2024-06-07 1203 "Too many channels specified. Maximum is %d, not including temperature channel if supported.\n",
> 51d5a38b21113a Dumitru Ceclan 2024-06-07 1204 st->info->num_channels);
> 51d5a38b21113a Dumitru Ceclan 2024-06-07 1205
> 51d5a38b21113a Dumitru Ceclan 2024-06-07 1206 indio_dev->num_channels = num_channels;
> 51d5a38b21113a Dumitru Ceclan 2024-06-07 1207 st->num_channels = num_channels;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1208
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1209 chan_arr = devm_kcalloc(dev, sizeof(*indio_dev->channels),
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1210 st->num_channels, GFP_KERNEL);
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1211 if (!chan_arr)
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1212 return -ENOMEM;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1213
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1214 chans_st_arr = devm_kcalloc(dev, st->num_channels, sizeof(*st->channels),
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1215 GFP_KERNEL);
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1216 if (!chans_st_arr)
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1217 return -ENOMEM;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1218
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1219 indio_dev->channels = chan_arr;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1220 st->channels = chans_st_arr;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1221
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1222 if (st->info->has_temp) {
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1223 chan_arr[chan_index] = ad7173_temp_iio_channel_template;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1224 chan_st_priv = &chans_st_arr[chan_index];
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1225 chan_st_priv->ain =
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1226 AD7173_CH_ADDRESS(chan_arr[chan_index].channel,
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1227 chan_arr[chan_index].channel2);
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1228 chan_st_priv->cfg.bipolar = false;
> ab6f0ab1781371 Dumitru Ceclan 2024-05-21 1229 chan_st_priv->cfg.input_buf = st->info->has_input_buf;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1230 chan_st_priv->cfg.ref_sel = AD7173_SETUP_REF_SEL_INT_REF;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1231 st->adc_mode |= AD7173_ADC_MODE_REF_EN;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1232
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1233 chan_index++;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1234 }
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1235
> cf84f1e0a8fd23 Jonathan Cameron 2024-03-30 1236 device_for_each_child_node_scoped(dev, child) {
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1237 chan = &chan_arr[chan_index];
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1238 *chan = ad7173_channel_template;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1239 chan_st_priv = &chans_st_arr[chan_index];
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1240 ret = fwnode_property_read_u32_array(child, "diff-channels",
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1241 ain, ARRAY_SIZE(ain));
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1242 if (ret) {
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1243 ret = fwnode_property_read_u32(child, "single-channel",
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1244 ain);
> cf84f1e0a8fd23 Jonathan Cameron 2024-03-30 1245 if (ret)
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1246 return dev_err_probe(dev, ret,
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1247 "Channel must define one of diff-channels or single-channel.\n");
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1248
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1249 is_current_chan = fwnode_property_read_bool(child, "adi,current-channel");
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1250 } else {
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1251 chan->differential = true;
>
> is_current_chan not initialized on this path.
>
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1252 }
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1253
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 @1254 if (is_current_chan) {
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1255 ret = ad4111_validate_current_ain(st, ain);
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1256 if (ret)
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1257 return ret;
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1258 } else {
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1259 if (!chan->differential) {
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1260 ret = fwnode_property_read_u32(child,
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1261 "common-mode-channel", ain + 1);
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1262 if (ret)
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1263 return dev_err_probe(dev, ret,
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1264 "common-mode-channel must be defined for single-ended channels.\n");
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1265 }
> 87477bf7433028 Dumitru Ceclan 2024-06-07 1266 ret = ad7173_validate_voltage_ain_inputs(st, ain[0], ain[1]);
> 87477bf7433028 Dumitru Ceclan 2024-06-07 1267 if (ret)
> 87477bf7433028 Dumitru Ceclan 2024-06-07 1268 return ret;
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1269 }
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1270
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1271 ret = fwnode_property_match_property_string(child,
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1272 "adi,reference-select",
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1273 ad7173_ref_sel_str,
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1274 ARRAY_SIZE(ad7173_ref_sel_str));
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1275 if (ret < 0)
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1276 ref_sel = AD7173_SETUP_REF_SEL_INT_REF;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1277 else
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1278 ref_sel = ret;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1279
> 87477bf7433028 Dumitru Ceclan 2024-06-07 1280 ret = ad7173_validate_reference(st, ref_sel);
> 87477bf7433028 Dumitru Ceclan 2024-06-07 1281 if (ret)
> 87477bf7433028 Dumitru Ceclan 2024-06-07 1282 return ret;
> cf84f1e0a8fd23 Jonathan Cameron 2024-03-30 1283
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1284 if (ref_sel == AD7173_SETUP_REF_SEL_INT_REF)
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1285 st->adc_mode |= AD7173_ADC_MODE_REF_EN;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1286 chan_st_priv->cfg.ref_sel = ref_sel;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1287
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1288 chan->address = chan_index;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1289 chan->scan_index = chan_index;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1290 chan->channel = ain[0];
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1291 chan_st_priv->chan_reg = chan_index;
> ab6f0ab1781371 Dumitru Ceclan 2024-05-21 1292 chan_st_priv->cfg.input_buf = st->info->has_input_buf;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1293 chan_st_priv->cfg.odr = 0;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1294
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1295 chan_st_priv->cfg.bipolar = fwnode_property_read_bool(child, "bipolar");
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1296 if (chan_st_priv->cfg.bipolar)
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1297 chan->info_mask_separate |= BIT(IIO_CHAN_INFO_OFFSET);
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1298
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1299 if (is_current_chan) {
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1300 chan->type = IIO_CURRENT;
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1301 chan->differential = false;
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1302 chan->channel2 = 0;
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1303 chan_st_priv->ain = ad4111_current_channel_config[ain[0]];
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1304 } else {
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1305 chan_st_priv->cfg.input_buf = st->info->has_input_buf;
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1306 chan->channel2 = ain[1];
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1307 chan_st_priv->ain = AD7173_CH_ADDRESS(ain[0], ain[1]);
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1308 }
> cfc4c76b75ab68 Dumitru Ceclan 2024-06-07 1309
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1310 chan_index++;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1311 }
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1312 return 0;
> 76a1e6a4280211 Dumitru Ceclan 2024-02-28 1313 }
>
next prev parent reply other threads:[~2024-07-02 8:42 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-01 15:30 [jic23-iio:testing 15/61] drivers/iio/adc/ad7173.c:1254 ad7173_fw_parse_channel_config() error: uninitialized symbol 'is_current_chan' Dan Carpenter
2024-07-02 8:42 ` Jonathan Cameron [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-06-23 12:35 kernel test robot
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=20240702094204.0000312a@Huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=dan.carpenter@linaro.org \
--cc=dlechner@baylibre.com \
--cc=dumitru.ceclan@analog.com \
--cc=jic23@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=lkp@intel.com \
--cc=nuno.sa@analog.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=oe-kbuild@lists.linux.dev \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.