* [linux-next:master 4086/8423] drivers/iio/adc/ingenic-adc.c:657:3: warning: 3rd function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage]
@ 2021-08-17 8:23 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-08-17 8:23 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 18322 bytes --]
CC: clang-built-linux(a)googlegroups.com
CC: kbuild-all(a)lists.01.org
CC: Linux Memory Management List <linux-mm@kvack.org>
TO: Christophe Branchereau <cbranchereau@gmail.com>
CC: Jonathan Cameron <Jonathan.Cameron@huawei.com>
CC: Paul Cercueil <paul@crapouillou.net>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: b9011c7e671dbbf59bb753283ddfd03f0c9eb865
commit: b9e9bdd425a3c99e15f5dfd465bef936130b7491 [4086/8423] iio/adc: ingenic: add JZ4760 support to the sadc driver
:::::: branch date: 25 hours ago
:::::: commit date: 2 weeks ago
config: mips-randconfig-c004-20210816 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 44d0a99a12ec7ead4d2f5ef649ba05b40f6d463d)
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 mips cross compiling tool for clang build
# apt-get install binutils-mips-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=b9e9bdd425a3c99e15f5dfd465bef936130b7491
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout b9e9bdd425a3c99e15f5dfd465bef936130b7491
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips 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 >>)
2 warnings generated.
Suppressed 2 warnings (2 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.
3 warnings generated.
Suppressed 3 warnings (3 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.
4 warnings generated.
include/linux/list.h:808:10: warning: Access to field 'pprev' results in a dereference of a null pointer (loaded from variable 'h') [clang-analyzer-core.NullDereference]
return !h->pprev;
^
kernel/ucount.c:244:23: note: Assuming pointer value is null
for (iter = ucounts; iter; iter = iter->ns->ucounts) {
^~~~
kernel/ucount.c:244:2: note: Loop condition is false. Execution continues on line 248
for (iter = ucounts; iter; iter = iter->ns->ucounts) {
^
kernel/ucount.c:248:14: note: Passing null pointer value via 1st parameter 'ucounts'
put_ucounts(ucounts);
^~~~~~~
kernel/ucount.c:248:2: note: Calling 'put_ucounts'
put_ucounts(ucounts);
^~~~~~~~~~~~~~~~~~~~
kernel/ucount.c:196:6: note: Calling 'atomic_dec_and_test'
if (atomic_dec_and_test(&ucounts->count)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/atomic-instrumented.h:543:9: note: Calling 'arch_atomic_dec_and_test'
return arch_atomic_dec_and_test(v);
^
include/linux/atomic-arch-fallback.h:1107:34: note: expanded from macro 'arch_atomic_dec_and_test'
#define arch_atomic_dec_and_test arch_atomic_dec_and_test
^
include/linux/atomic-arch-fallback.h:1105:9: note: Assuming the condition is true
return arch_atomic_dec_return(v) == 0;
^
include/linux/atomic-arch-fallback.h:529:32: note: expanded from macro 'arch_atomic_dec_return'
#define arch_atomic_dec_return arch_atomic_dec_return
^
include/linux/atomic-arch-fallback.h:1105:2: note: Returning the value 1, which participates in a condition later
return arch_atomic_dec_return(v) == 0;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/atomic-instrumented.h:543:9: note: Returning from 'arch_atomic_dec_and_test'
return arch_atomic_dec_and_test(v);
^
include/linux/atomic-arch-fallback.h:1107:34: note: expanded from macro 'arch_atomic_dec_and_test'
#define arch_atomic_dec_and_test arch_atomic_dec_and_test
^
include/asm-generic/atomic-instrumented.h:543:2: note: Returning the value 1, which participates in a condition later
return arch_atomic_dec_and_test(v);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/ucount.c:196:6: note: Returning from 'atomic_dec_and_test'
if (atomic_dec_and_test(&ucounts->count)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/ucount.c:196:2: note: Taking true branch
if (atomic_dec_and_test(&ucounts->count)) {
^
kernel/ucount.c:197:3: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&ucounts_lock, flags);
^
include/linux/spinlock.h:384:2: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
include/linux/spinlock.h:250:2: note: expanded from macro 'raw_spin_lock_irqsave'
do { \
^
kernel/ucount.c:197:3: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&ucounts_lock, flags);
^
include/linux/spinlock.h:382:43: note: expanded from macro 'spin_lock_irqsave'
#define spin_lock_irqsave(lock, flags) \
^
kernel/ucount.c:198:18: note: Passing null pointer value via 1st parameter 'n'
hlist_del_init(&ucounts->node);
^~~~~~~~~~~~~~
kernel/ucount.c:198:3: note: Calling 'hlist_del_init'
hlist_del_init(&ucounts->node);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/list.h:865:22: note: Passing null pointer value via 1st parameter 'h'
if (!hlist_unhashed(n)) {
^
include/linux/list.h:865:7: note: Calling 'hlist_unhashed'
if (!hlist_unhashed(n)) {
^~~~~~~~~~~~~~~~~
include/linux/list.h:808:10: note: Access to field 'pprev' results in a dereference of a null pointer (loaded from variable 'h')
return !h->pprev;
^
Suppressed 3 warnings (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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.
4 warnings generated.
drivers/iio/adc/bcm_iproc_adc.c:120:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = &indio_dev->dev;
^~~ ~~~~~~~~~~~~~~~
drivers/iio/adc/bcm_iproc_adc.c:120:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = &indio_dev->dev;
^~~ ~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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.
4 warnings generated.
>> drivers/iio/adc/ingenic-adc.c:657:3: warning: 3rd function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage]
ingenic_adc_set_config(adc, JZ_ADC_REG_CFG_AUX_MD, cmd);
^
drivers/iio/adc/ingenic-adc.c:691:2: note: Control jumps to 'case IIO_CHAN_INFO_RAW:' at line 692
switch (m) {
^
drivers/iio/adc/ingenic-adc.c:693:10: note: Calling 'ingenic_adc_read_chan_info_raw'
return ingenic_adc_read_chan_info_raw(iio_dev, chan, val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/iio/adc/ingenic-adc.c:632:6: note: 'cmd' declared without an initial value
int cmd, ret, engine = (chan->channel == INGENIC_ADC_BATTERY);
^~~
drivers/iio/adc/ingenic-adc.c:632:26: note: Assuming field 'channel' is not equal to INGENIC_ADC_BATTERY
int cmd, ret, engine = (chan->channel == INGENIC_ADC_BATTERY);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/iio/adc/ingenic-adc.c:636:6: note: Assuming 'ret' is 0
if (ret) {
^~~
drivers/iio/adc/ingenic-adc.c:636:2: note: Taking false branch
if (ret) {
^
drivers/iio/adc/ingenic-adc.c:644:6: note: Assuming field 'has_aux_md' is not equal to 0
if (adc->soc_data->has_aux_md && engine == 0) {
^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/iio/adc/ingenic-adc.c:644:6: note: Left side of '&&' is true
drivers/iio/adc/ingenic-adc.c:644:35: note: 'engine' is equal to 0
if (adc->soc_data->has_aux_md && engine == 0) {
^~~~~~
drivers/iio/adc/ingenic-adc.c:644:2: note: Taking true branch
if (adc->soc_data->has_aux_md && engine == 0) {
^
drivers/iio/adc/ingenic-adc.c:645:3: note: 'Default' branch taken. Execution continues on line 657
switch (chan->channel) {
^
drivers/iio/adc/ingenic-adc.c:657:3: note: 3rd function call argument is an uninitialized value
ingenic_adc_set_config(adc, JZ_ADC_REG_CFG_AUX_MD, cmd);
^ ~~~
Suppressed 3 warnings (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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.
drivers/gpio/gpio-adnp.c:385:28: warning: The result of the left shift is undefined due to shifting by '4294967292', which is greater or equal to the width of type 'int' [clang-analyzer-core.UndefinedBinaryOperatorResult]
unsigned int num_regs = 1 << adnp->reg_shift, i;
^
drivers/gpio/gpio-adnp.c:498:6: note: 'err' is >= 0
if (err < 0)
^~~
drivers/gpio/gpio-adnp.c:498:2: note: Taking false branch
if (err < 0)
^
drivers/gpio/gpio-adnp.c:502:6: note: Assuming field 'irq' is not equal to 0
if (!client->irq)
^~~~~~~~~~~~
drivers/gpio/gpio-adnp.c:502:2: note: Taking false branch
if (!client->irq)
^
drivers/gpio/gpio-adnp.c:506:6: note: Assuming 'adnp' is non-null
if (!adnp)
^~~~~
drivers/gpio/gpio-adnp.c:506:2: note: Taking false branch
if (!adnp)
^
drivers/gpio/gpio-adnp.c:509:2: note: Loop condition is false. Exiting loop
mutex_init(&adnp->i2c_lock);
^
include/linux/mutex.h:113:32: note: expanded from macro 'mutex_init'
#define mutex_init(mutex) \
^
drivers/gpio/gpio-adnp.c:512:8: note: Calling 'adnp_gpio_setup'
err = adnp_gpio_setup(adnp, num_gpios,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpio/gpio-adnp.c:446:2: note: The value 4294967292 is assigned to field 'reg_shift'
adnp->reg_shift = get_count_order(num_gpios) - 3;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpio/gpio-adnp.c:454:2: note: Taking true branch
if (IS_ENABLED(CONFIG_DEBUG_FS))
^
drivers/gpio/gpio-adnp.c:464:6: note: 'is_irq_controller' is true
if (is_irq_controller) {
^~~~~~~~~~~~~~~~~
drivers/gpio/gpio-adnp.c:464:2: note: Taking true branch
vim +657 drivers/iio/adc/ingenic-adc.c
1a78daea107ddb Artur Rojek 2019-02-04 627
1a99dc467943c0 Artur Rojek 2020-07-19 628 static int ingenic_adc_read_chan_info_raw(struct iio_dev *iio_dev,
1a78daea107ddb Artur Rojek 2019-02-04 629 struct iio_chan_spec const *chan,
a515d648850546 Artur Rojek 2019-07-27 630 int *val)
1a78daea107ddb Artur Rojek 2019-02-04 631 {
b9e9bdd425a3c9 Christophe Branchereau 2021-07-26 632 int cmd, ret, engine = (chan->channel == INGENIC_ADC_BATTERY);
1a99dc467943c0 Artur Rojek 2020-07-19 633 struct ingenic_adc *adc = iio_priv(iio_dev);
1a99dc467943c0 Artur Rojek 2020-07-19 634
1a99dc467943c0 Artur Rojek 2020-07-19 635 ret = clk_enable(adc->clk);
1a99dc467943c0 Artur Rojek 2020-07-19 636 if (ret) {
1a99dc467943c0 Artur Rojek 2020-07-19 637 dev_err(iio_dev->dev.parent, "Failed to enable clock: %d\n",
1a99dc467943c0 Artur Rojek 2020-07-19 638 ret);
1a99dc467943c0 Artur Rojek 2020-07-19 639 return ret;
1a99dc467943c0 Artur Rojek 2020-07-19 640 }
1a78daea107ddb Artur Rojek 2019-02-04 641
b9e9bdd425a3c9 Christophe Branchereau 2021-07-26 642 /* We cannot sample the aux channels in parallel. */
a515d648850546 Artur Rojek 2019-07-27 643 mutex_lock(&adc->aux_lock);
9c5eb724f96f8d Christophe Branchereau 2021-07-26 644 if (adc->soc_data->has_aux_md && engine == 0) {
b9e9bdd425a3c9 Christophe Branchereau 2021-07-26 645 switch (chan->channel) {
b9e9bdd425a3c9 Christophe Branchereau 2021-07-26 646 case INGENIC_ADC_AUX0:
b9e9bdd425a3c9 Christophe Branchereau 2021-07-26 647 cmd = 0;
b9e9bdd425a3c9 Christophe Branchereau 2021-07-26 648 break;
b9e9bdd425a3c9 Christophe Branchereau 2021-07-26 649 case INGENIC_ADC_AUX:
b9e9bdd425a3c9 Christophe Branchereau 2021-07-26 650 cmd = 1;
b9e9bdd425a3c9 Christophe Branchereau 2021-07-26 651 break;
b9e9bdd425a3c9 Christophe Branchereau 2021-07-26 652 case INGENIC_ADC_AUX2:
b9e9bdd425a3c9 Christophe Branchereau 2021-07-26 653 cmd = 2;
b9e9bdd425a3c9 Christophe Branchereau 2021-07-26 654 break;
b9e9bdd425a3c9 Christophe Branchereau 2021-07-26 655 }
b9e9bdd425a3c9 Christophe Branchereau 2021-07-26 656
b9e9bdd425a3c9 Christophe Branchereau 2021-07-26 @657 ingenic_adc_set_config(adc, JZ_ADC_REG_CFG_AUX_MD, cmd);
1a78daea107ddb Artur Rojek 2019-02-04 658 }
1a78daea107ddb Artur Rojek 2019-02-04 659
a515d648850546 Artur Rojek 2019-07-27 660 ret = ingenic_adc_capture(adc, engine);
a515d648850546 Artur Rojek 2019-07-27 661 if (ret)
a515d648850546 Artur Rojek 2019-07-27 662 goto out;
a515d648850546 Artur Rojek 2019-07-27 663
1a78daea107ddb Artur Rojek 2019-02-04 664 switch (chan->channel) {
b9e9bdd425a3c9 Christophe Branchereau 2021-07-26 665 case INGENIC_ADC_AUX0:
1a78daea107ddb Artur Rojek 2019-02-04 666 case INGENIC_ADC_AUX:
a515d648850546 Artur Rojek 2019-07-27 667 case INGENIC_ADC_AUX2:
1a78daea107ddb Artur Rojek 2019-02-04 668 *val = readw(adc->base + JZ_ADC_REG_ADSDAT);
1a78daea107ddb Artur Rojek 2019-02-04 669 break;
1a78daea107ddb Artur Rojek 2019-02-04 670 case INGENIC_ADC_BATTERY:
1a78daea107ddb Artur Rojek 2019-02-04 671 *val = readw(adc->base + JZ_ADC_REG_ADBDAT);
1a78daea107ddb Artur Rojek 2019-02-04 672 break;
1a78daea107ddb Artur Rojek 2019-02-04 673 }
1a78daea107ddb Artur Rojek 2019-02-04 674
a515d648850546 Artur Rojek 2019-07-27 675 ret = IIO_VAL_INT;
a515d648850546 Artur Rojek 2019-07-27 676 out:
a515d648850546 Artur Rojek 2019-07-27 677 mutex_unlock(&adc->aux_lock);
1a99dc467943c0 Artur Rojek 2020-07-19 678 clk_disable(adc->clk);
1a78daea107ddb Artur Rojek 2019-02-04 679
a515d648850546 Artur Rojek 2019-07-27 680 return ret;
a515d648850546 Artur Rojek 2019-07-27 681 }
a515d648850546 Artur Rojek 2019-07-27 682
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 35621 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-08-17 8:23 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-17 8:23 [linux-next:master 4086/8423] drivers/iio/adc/ingenic-adc.c:657:3: warning: 3rd function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage] 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.