* drivers/iio/adc/xilinx-ams.c:1324:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
@ 2022-01-28 12:30 kernel test robot
2022-01-30 2:46 ` kernel test robot
0 siblings, 1 reply; 3+ messages in thread
From: kernel test robot @ 2022-01-28 12:30 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 19957 bytes --]
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Anand Ashok Dumbre <anand.ashok.dumbre@xilinx.com>
CC: Jonathan Cameron <Jonathan.Cameron@huawei.com>
CC: Manish Narani <manish.narani@xilinx.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 23a46422c56144939c091c76cf389aa863ce9c18
commit: d5c70627a79455154f5f636096abe6fe57510605 iio: adc: Add Xilinx AMS driver
date: 5 weeks ago
:::::: branch date: 17 hours ago
:::::: commit date: 5 weeks ago
config: riscv-randconfig-c006-20220126 (https://download.01.org/0day-ci/archive/20220128/202201282049.dQhZXwBH-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 2a1b7aa016c0f4b5598806205bdfbab1ea2d92c4)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d5c70627a79455154f5f636096abe6fe57510605
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout d5c70627a79455154f5f636096abe6fe57510605
# save the config file to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv clang-analyzer
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
clang-analyzer warnings: (new ones prefixed by >>)
lib/vsprintf.c:1360:9: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
*p++ = temp[digits];
^
lib/vsprintf.c:3071:2: note: Loop condition is true. Entering loop body
while (*fmt) {
^
lib/vsprintf.c:3076:3: note: Control jumps to 'case FORMAT_TYPE_PTR:' at line 3111
switch (spec.type) {
^
lib/vsprintf.c:3113:4: note: Control jumps to the 'default' case at line 3122
switch (*fmt) {
^
lib/vsprintf.c:3123:9: note: Assuming the condition is false
if (!isalnum(*fmt)) {
^~~~~~~~~~~~~~
lib/vsprintf.c:3123:5: note: Taking false branch
if (!isalnum(*fmt)) {
^
lib/vsprintf.c:3127:11: note: Calling 'pointer'
str = pointer(fmt, str, end, va_arg(args, void *),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/vsprintf.c:2396:2: note: Control jumps to 'case 105:' at line 2425
switch (*fmt) {
^
lib/vsprintf.c:2429:10: note: Calling 'ip_addr_string'
return ip_addr_string(buf, end, ptr, spec, fmt);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/vsprintf.c:1597:2: note: Taking false branch
if (check_pointer(&buf, end, ptr, spec))
^
lib/vsprintf.c:1600:2: note: Control jumps to 'case 52:' at line 1603
switch (fmt[1]) {
^
lib/vsprintf.c:1604:10: note: Calling 'ip4_addr_string'
return ip4_addr_string(buf, end, ptr, spec, fmt);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/vsprintf.c:1489:2: note: Calling 'ip4_string'
ip4_string(ip4_addr, addr, fmt);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/vsprintf.c:1328:2: note: Control jumps to the 'default' case at line 1344
switch (fmt[2]) {
^
lib/vsprintf.c:1347:3: note: Execution continues on line 1349
break;
^
lib/vsprintf.c:1349:2: note: Loop condition is true. Entering loop body
for (i = 0; i < 4; i++) {
^
lib/vsprintf.c:1351:16: note: Calling 'put_dec_trunc8'
int digits = put_dec_trunc8(temp, addr[index]) - temp;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/vsprintf.c:219:6: note: Assuming 'r' is < 100
if (r < 100)
^~~~~~~
lib/vsprintf.c:219:2: note: Taking true branch
if (r < 100)
^
lib/vsprintf.c:220:3: note: Control jumps to line 249
goto out_r;
^
lib/vsprintf.c:250:9: note: Assuming 'r' is >= 10
buf += r < 10 ? 1 : 2;
^~~~~~
lib/vsprintf.c:250:9: note: '?' condition is false
lib/vsprintf.c:1351:16: note: Returning from 'put_dec_trunc8'
int digits = put_dec_trunc8(temp, addr[index]) - temp;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/vsprintf.c:1352:7: note: Assuming 'leading_zeros' is false
if (leading_zeros) {
^~~~~~~~~~~~~
lib/vsprintf.c:1352:3: note: Taking false branch
if (leading_zeros) {
^
lib/vsprintf.c:1359:10: note: The value 1 is assigned to 'digits'
while (digits--)
^~~~~~~~
lib/vsprintf.c:1359:3: note: Loop condition is true. Entering loop body
while (digits--)
^
lib/vsprintf.c:1360:9: note: Assigned value is garbage or undefined
*p++ = temp[digits];
^ ~~~~~~~~~~~~
lib/vsprintf.c:1423:4: warning: Value stored to 'needcolon' is never read [clang-analyzer-deadcode.DeadStores]
needcolon = false;
^ ~~~~~
lib/vsprintf.c:1423:4: note: Value stored to 'needcolon' is never read
needcolon = false;
^ ~~~~~
lib/vsprintf.c:1791:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(p, *fourcc & BIT(31) ? " big-endian" : " little-endian");
^~~~~~
lib/vsprintf.c:1791:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(p, *fourcc & BIT(31) ? " big-endian" : " little-endian");
^~~~~~
Suppressed 10 warnings (10 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
>> drivers/iio/adc/xilinx-ams.c:1324:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = -ENOMEM;
^ ~~~~~~~
drivers/iio/adc/xilinx-ams.c:1324:3: note: Value stored to 'ret' is never read
ret = -ENOMEM;
^ ~~~~~~~
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
drivers/iio/amplifiers/ad8366.c:39:8: warning: Excessive padding in 'struct ad8366_state' (76 padding bytes, where 12 is optimal).
Optimal fields order:
data,
ch,
spi,
reg,
reset_gpio,
type,
info,
lock,
consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
struct ad8366_state {
~~~~~~~^~~~~~~~~~~~~~
drivers/iio/amplifiers/ad8366.c:39:8: note: Excessive padding in 'struct ad8366_state' (76 padding bytes, where 12 is optimal). Optimal fields order: data, ch, spi, reg, reset_gpio, type, info, lock, consider reordering the fields or adding explicit padding members
struct ad8366_state {
~~~~~~~^~~~~~~~~~~~~~
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
drivers/iio/adc/ti-ads7950.c:444:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = ((st->single_rx >> 12) & BIT(offset)) ? 1 : 0;
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/iio/adc/ti-ads7950.c:444:2: note: Value stored to 'ret' is never read
ret = ((st->single_rx >> 12) & BIT(offset)) ? 1 : 0;
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
drivers/iio/adc/ti-ads8344.c:22:8: warning: Excessive padding in 'struct ads8344' (88 padding bytes, where 24 is optimal).
Optimal fields order:
tx_buf,
rx_buf,
spi,
reg,
lock,
consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
struct ads8344 {
~~~~~~~^~~~~~~~~
drivers/iio/adc/ti-ads8344.c:22:8: note: Excessive padding in 'struct ads8344' (88 padding bytes, where 24 is optimal). Optimal fields order: tx_buf, rx_buf, spi, reg, lock, consider reordering the fields or adding explicit padding members
struct ads8344 {
~~~~~~~^~~~~~~~~
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
9 warnings generated.
drivers/iio/adc/ti-ads8688.c:64:8: warning: Excessive padding in 'struct ads8688_state' (108 padding bytes, where 44 is optimal).
Optimal fields order:
data,
chip_info,
spi,
reg,
vref_mv,
range,
lock,
consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
struct ads8688_state {
~~~~~~~^~~~~~~~~~~~~~~
drivers/iio/adc/ti-ads8688.c:64:8: note: Excessive padding in 'struct ads8688_state' (108 padding bytes, where 44 is optimal). Optimal fields order: data, chip_info, spi, reg, vref_mv, range, lock, consider reordering the fields or adding explicit padding members
struct ads8688_state {
~~~~~~~^~~~~~~~~~~~~~~
vim +/ret +1324 drivers/iio/adc/xilinx-ams.c
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1253
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1254 static int ams_parse_firmware(struct iio_dev *indio_dev)
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1255 {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1256 struct ams *ams = iio_priv(indio_dev);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1257 struct iio_chan_spec *ams_channels, *dev_channels;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1258 struct device *dev = indio_dev->dev.parent;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1259 struct fwnode_handle *child = NULL;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1260 struct fwnode_handle *fwnode = dev_fwnode(dev);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1261 size_t ams_size, dev_size;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1262 int ret, ch_cnt = 0, i, rising_off, falling_off;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1263 unsigned int num_channels = 0;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1264
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1265 ams_size = ARRAY_SIZE(ams_ps_channels) + ARRAY_SIZE(ams_pl_channels) +
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1266 ARRAY_SIZE(ams_ctrl_channels);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1267
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1268 /* Initialize buffer for channel specification */
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1269 ams_channels = devm_kcalloc(dev, ams_size, sizeof(*ams_channels), GFP_KERNEL);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1270 if (!ams_channels)
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1271 return -ENOMEM;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1272
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1273 if (fwnode_device_is_available(fwnode)) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1274 ret = ams_init_module(indio_dev, fwnode, ams_channels);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1275 if (ret < 0)
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1276 return ret;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1277
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1278 num_channels += ret;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1279 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1280
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1281 fwnode_for_each_child_node(fwnode, child) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1282 if (fwnode_device_is_available(child)) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1283 ret = ams_init_module(indio_dev, child, ams_channels + num_channels);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1284 if (ret < 0) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1285 fwnode_handle_put(child);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1286 return ret;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1287 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1288
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1289 num_channels += ret;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1290 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1291 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1292
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1293 for (i = 0; i < num_channels; i++) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1294 ams_channels[i].channel = ch_cnt++;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1295
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1296 if (ams_channels[i].scan_index < AMS_CTRL_SEQ_BASE) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1297 /* set threshold to max and min for each channel */
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1298 falling_off =
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1299 ams_get_alarm_offset(ams_channels[i].scan_index,
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1300 IIO_EV_DIR_FALLING);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1301 rising_off =
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1302 ams_get_alarm_offset(ams_channels[i].scan_index,
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1303 IIO_EV_DIR_RISING);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1304 if (ams_channels[i].scan_index >= AMS_PS_SEQ_MAX) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1305 writel(AMS_ALARM_THR_MIN,
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1306 ams->pl_base + falling_off);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1307 writel(AMS_ALARM_THR_MAX,
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1308 ams->pl_base + rising_off);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1309 } else {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1310 writel(AMS_ALARM_THR_MIN,
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1311 ams->ps_base + falling_off);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1312 writel(AMS_ALARM_THR_MAX,
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1313 ams->ps_base + rising_off);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1314 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1315 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1316 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1317
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1318 dev_size = array_size(sizeof(*dev_channels), num_channels);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1319 if (dev_size == SIZE_MAX)
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1320 return -ENOMEM;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1321
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1322 dev_channels = devm_krealloc(dev, ams_channels, dev_size, GFP_KERNEL);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1323 if (!dev_channels)
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 @1324 ret = -ENOMEM;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1325
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1326 indio_dev->channels = dev_channels;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1327 indio_dev->num_channels = num_channels;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1328
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1329 return 0;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1330 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1331
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 3+ messages in thread
* drivers/iio/adc/xilinx-ams.c:1324:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
2022-01-28 12:30 drivers/iio/adc/xilinx-ams.c:1324:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] kernel test robot
@ 2022-01-30 2:46 ` kernel test robot
0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2022-01-30 2:46 UTC (permalink / raw)
To: Anand Ashok Dumbre
Cc: llvm, kbuild-all, Linux Kernel Mailing List, Jonathan Cameron,
Manish Narani
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 23a46422c56144939c091c76cf389aa863ce9c18
commit: d5c70627a79455154f5f636096abe6fe57510605 iio: adc: Add Xilinx AMS driver
date: 5 weeks ago
config: riscv-randconfig-c006-20220126 (https://download.01.org/0day-ci/archive/20220128/202201282049.dQhZXwBH-lkp@intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 2a1b7aa016c0f4b5598806205bdfbab1ea2d92c4)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d5c70627a79455154f5f636096abe6fe57510605
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout d5c70627a79455154f5f636096abe6fe57510605
# save the config file to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv clang-analyzer
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <yujie.liu@intel.com>
clang-analyzer warnings: (new ones prefixed by >>)
>> drivers/iio/adc/xilinx-ams.c:1324:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = -ENOMEM;
^ ~~~~~~~
vim +/ret +1324 drivers/iio/adc/xilinx-ams.c
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1253
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1254 static int ams_parse_firmware(struct iio_dev *indio_dev)
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1255 {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1256 struct ams *ams = iio_priv(indio_dev);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1257 struct iio_chan_spec *ams_channels, *dev_channels;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1258 struct device *dev = indio_dev->dev.parent;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1259 struct fwnode_handle *child = NULL;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1260 struct fwnode_handle *fwnode = dev_fwnode(dev);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1261 size_t ams_size, dev_size;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1262 int ret, ch_cnt = 0, i, rising_off, falling_off;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1263 unsigned int num_channels = 0;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1264
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1265 ams_size = ARRAY_SIZE(ams_ps_channels) + ARRAY_SIZE(ams_pl_channels) +
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1266 ARRAY_SIZE(ams_ctrl_channels);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1267
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1268 /* Initialize buffer for channel specification */
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1269 ams_channels = devm_kcalloc(dev, ams_size, sizeof(*ams_channels), GFP_KERNEL);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1270 if (!ams_channels)
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1271 return -ENOMEM;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1272
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1273 if (fwnode_device_is_available(fwnode)) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1274 ret = ams_init_module(indio_dev, fwnode, ams_channels);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1275 if (ret < 0)
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1276 return ret;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1277
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1278 num_channels += ret;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1279 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1280
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1281 fwnode_for_each_child_node(fwnode, child) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1282 if (fwnode_device_is_available(child)) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1283 ret = ams_init_module(indio_dev, child, ams_channels + num_channels);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1284 if (ret < 0) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1285 fwnode_handle_put(child);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1286 return ret;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1287 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1288
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1289 num_channels += ret;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1290 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1291 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1292
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1293 for (i = 0; i < num_channels; i++) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1294 ams_channels[i].channel = ch_cnt++;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1295
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1296 if (ams_channels[i].scan_index < AMS_CTRL_SEQ_BASE) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1297 /* set threshold to max and min for each channel */
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1298 falling_off =
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1299 ams_get_alarm_offset(ams_channels[i].scan_index,
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1300 IIO_EV_DIR_FALLING);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1301 rising_off =
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1302 ams_get_alarm_offset(ams_channels[i].scan_index,
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1303 IIO_EV_DIR_RISING);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1304 if (ams_channels[i].scan_index >= AMS_PS_SEQ_MAX) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1305 writel(AMS_ALARM_THR_MIN,
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1306 ams->pl_base + falling_off);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1307 writel(AMS_ALARM_THR_MAX,
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1308 ams->pl_base + rising_off);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1309 } else {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1310 writel(AMS_ALARM_THR_MIN,
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1311 ams->ps_base + falling_off);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1312 writel(AMS_ALARM_THR_MAX,
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1313 ams->ps_base + rising_off);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1314 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1315 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1316 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1317
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1318 dev_size = array_size(sizeof(*dev_channels), num_channels);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1319 if (dev_size == SIZE_MAX)
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1320 return -ENOMEM;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1321
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1322 dev_channels = devm_krealloc(dev, ams_channels, dev_size, GFP_KERNEL);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1323 if (!dev_channels)
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 @1324 ret = -ENOMEM;
'return -ENOMEM;' ?
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1325
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1326 indio_dev->channels = dev_channels;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1327 indio_dev->num_channels = num_channels;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1328
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1329 return 0;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1330 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1331
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
^ permalink raw reply [flat|nested] 3+ messages in thread
* drivers/iio/adc/xilinx-ams.c:1324:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
@ 2022-01-30 2:46 ` kernel test robot
0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2022-01-30 2:46 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 8138 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 23a46422c56144939c091c76cf389aa863ce9c18
commit: d5c70627a79455154f5f636096abe6fe57510605 iio: adc: Add Xilinx AMS driver
date: 5 weeks ago
config: riscv-randconfig-c006-20220126 (https://download.01.org/0day-ci/archive/20220128/202201282049.dQhZXwBH-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 2a1b7aa016c0f4b5598806205bdfbab1ea2d92c4)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d5c70627a79455154f5f636096abe6fe57510605
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout d5c70627a79455154f5f636096abe6fe57510605
# save the config file to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv clang-analyzer
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <yujie.liu@intel.com>
clang-analyzer warnings: (new ones prefixed by >>)
>> drivers/iio/adc/xilinx-ams.c:1324:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = -ENOMEM;
^ ~~~~~~~
vim +/ret +1324 drivers/iio/adc/xilinx-ams.c
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1253
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1254 static int ams_parse_firmware(struct iio_dev *indio_dev)
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1255 {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1256 struct ams *ams = iio_priv(indio_dev);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1257 struct iio_chan_spec *ams_channels, *dev_channels;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1258 struct device *dev = indio_dev->dev.parent;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1259 struct fwnode_handle *child = NULL;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1260 struct fwnode_handle *fwnode = dev_fwnode(dev);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1261 size_t ams_size, dev_size;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1262 int ret, ch_cnt = 0, i, rising_off, falling_off;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1263 unsigned int num_channels = 0;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1264
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1265 ams_size = ARRAY_SIZE(ams_ps_channels) + ARRAY_SIZE(ams_pl_channels) +
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1266 ARRAY_SIZE(ams_ctrl_channels);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1267
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1268 /* Initialize buffer for channel specification */
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1269 ams_channels = devm_kcalloc(dev, ams_size, sizeof(*ams_channels), GFP_KERNEL);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1270 if (!ams_channels)
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1271 return -ENOMEM;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1272
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1273 if (fwnode_device_is_available(fwnode)) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1274 ret = ams_init_module(indio_dev, fwnode, ams_channels);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1275 if (ret < 0)
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1276 return ret;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1277
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1278 num_channels += ret;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1279 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1280
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1281 fwnode_for_each_child_node(fwnode, child) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1282 if (fwnode_device_is_available(child)) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1283 ret = ams_init_module(indio_dev, child, ams_channels + num_channels);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1284 if (ret < 0) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1285 fwnode_handle_put(child);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1286 return ret;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1287 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1288
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1289 num_channels += ret;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1290 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1291 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1292
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1293 for (i = 0; i < num_channels; i++) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1294 ams_channels[i].channel = ch_cnt++;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1295
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1296 if (ams_channels[i].scan_index < AMS_CTRL_SEQ_BASE) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1297 /* set threshold to max and min for each channel */
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1298 falling_off =
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1299 ams_get_alarm_offset(ams_channels[i].scan_index,
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1300 IIO_EV_DIR_FALLING);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1301 rising_off =
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1302 ams_get_alarm_offset(ams_channels[i].scan_index,
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1303 IIO_EV_DIR_RISING);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1304 if (ams_channels[i].scan_index >= AMS_PS_SEQ_MAX) {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1305 writel(AMS_ALARM_THR_MIN,
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1306 ams->pl_base + falling_off);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1307 writel(AMS_ALARM_THR_MAX,
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1308 ams->pl_base + rising_off);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1309 } else {
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1310 writel(AMS_ALARM_THR_MIN,
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1311 ams->ps_base + falling_off);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1312 writel(AMS_ALARM_THR_MAX,
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1313 ams->ps_base + rising_off);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1314 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1315 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1316 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1317
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1318 dev_size = array_size(sizeof(*dev_channels), num_channels);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1319 if (dev_size == SIZE_MAX)
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1320 return -ENOMEM;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1321
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1322 dev_channels = devm_krealloc(dev, ams_channels, dev_size, GFP_KERNEL);
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1323 if (!dev_channels)
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 @1324 ret = -ENOMEM;
'return -ENOMEM;' ?
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1325
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1326 indio_dev->channels = dev_channels;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1327 indio_dev->num_channels = num_channels;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1328
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1329 return 0;
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1330 }
d5c70627a79455 Anand Ashok Dumbre 2021-12-03 1331
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-01-30 2:46 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-28 12:30 drivers/iio/adc/xilinx-ams.c:1324:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] kernel test robot
2022-01-30 2:46 ` kernel test robot
2022-01-30 2:46 ` kernel test robot
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.