From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: sound/soc/codecs/max98373-sdw.c:789:26: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
Date: Wed, 18 Aug 2021 10:09:06 +0800 [thread overview]
Message-ID: <202108181058.Mle7bRXN-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 18801 bytes --]
CC: clang-built-linux(a)googlegroups.com
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Bard Liao <yung-chuan.liao@linux.intel.com>
CC: Mark Brown <broonie@kernel.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 614cb2751d3150850d459bee596c397f344a7936
commit: 349dd23931d1943b1083182e35715eba8b150fe1 ASoC: max98373: don't access volatile registers in bias level off
date: 8 months ago
:::::: branch date: 6 hours ago
:::::: commit date: 8 months ago
config: arm-randconfig-c002-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 arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=349dd23931d1943b1083182e35715eba8b150fe1
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 349dd23931d1943b1083182e35715eba8b150fe1
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm 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 >>)
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/bus/mhi/core/boot.c:140:2: note: Value stored to 'ret' is never read
ret = mhi_read_reg(mhi_cntrl, base, BHIE_RXVECSTATUS_OFFS, &rx_status);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/bus/mhi/core/boot.c:153:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = &mhi_cntrl->mhi_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~~~~~~
drivers/bus/mhi/core/boot.c:153:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = &mhi_cntrl->mhi_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~~~~~~
drivers/bus/mhi/core/boot.c:178:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = &mhi_cntrl->mhi_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~~~~~~
drivers/bus/mhi/core/boot.c:178:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = &mhi_cntrl->mhi_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.
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.
drivers/base/regmap/regcache.c:137:7: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
if (config->reg_defaults[i].reg % map->reg_stride)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/base/regmap/regcache.c:121:6: note: Assuming field 'cache_type' is not equal to REGCACHE_NONE
if (map->cache_type == REGCACHE_NONE) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/base/regmap/regcache.c:121:2: note: Taking false branch
if (map->cache_type == REGCACHE_NONE) {
^
drivers/base/regmap/regcache.c:130:6: note: Assuming field 'reg_defaults' is null
if (config->reg_defaults && !config->num_reg_defaults) {
^~~~~~~~~~~~~~~~~~~~
drivers/base/regmap/regcache.c:130:27: note: Left side of '&&' is false
if (config->reg_defaults && !config->num_reg_defaults) {
^
drivers/base/regmap/regcache.c:136:14: note: Assuming 'i' is < field 'num_reg_defaults'
for (i = 0; i < config->num_reg_defaults; i++)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/base/regmap/regcache.c:136:2: note: Loop condition is true. Entering loop body
for (i = 0; i < config->num_reg_defaults; i++)
^
drivers/base/regmap/regcache.c:137:7: note: Dereference of null pointer
if (config->reg_defaults[i].reg % map->reg_stride)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
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.
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.
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 (2 in non-user code, 1 with check filters).
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.
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.
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.
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.
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.
4 warnings generated.
>> sound/soc/codecs/max98373-sdw.c:789:26: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
max98373->cache[i].reg = max98373_sdw_cache_reg[i];
^
sound/soc/codecs/max98373-sdw.c:854:2: note: Taking false branch
if (IS_ERR(regmap))
^
sound/soc/codecs/max98373-sdw.c:857:9: note: Calling 'max98373_init'
return max98373_init(slave, regmap);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/codecs/max98373-sdw.c:776:6: note: Assuming 'max98373' is non-null
if (!max98373)
^~~~~~~~~
sound/soc/codecs/max98373-sdw.c:776:2: note: Taking false branch
if (!max98373)
^
sound/soc/codecs/max98373-sdw.c:788:14: note: Assuming 'i' is < field 'cache_num'
for (i = 0; i < max98373->cache_num; i++)
^~~~~~~~~~~~~~~~~~~~~~~
sound/soc/codecs/max98373-sdw.c:788:2: note: Loop condition is true. Entering loop body
for (i = 0; i < max98373->cache_num; i++)
^
sound/soc/codecs/max98373-sdw.c:788:14: note: Assuming 'i' is < field 'cache_num'
for (i = 0; i < max98373->cache_num; i++)
^~~~~~~~~~~~~~~~~~~~~~~
sound/soc/codecs/max98373-sdw.c:788:2: note: Loop condition is true. Entering loop body
for (i = 0; i < max98373->cache_num; i++)
^
sound/soc/codecs/max98373-sdw.c:788:14: note: Assuming 'i' is < field 'cache_num'
for (i = 0; i < max98373->cache_num; i++)
^~~~~~~~~~~~~~~~~~~~~~~
sound/soc/codecs/max98373-sdw.c:788:2: note: Loop condition is true. Entering loop body
for (i = 0; i < max98373->cache_num; i++)
^
sound/soc/codecs/max98373-sdw.c:788:39: note: The value 3 is assigned to 'i'
for (i = 0; i < max98373->cache_num; i++)
^~~
sound/soc/codecs/max98373-sdw.c:788:14: note: Assuming 'i' is < field 'cache_num'
for (i = 0; i < max98373->cache_num; i++)
^~~~~~~~~~~~~~~~~~~~~~~
sound/soc/codecs/max98373-sdw.c:788:2: note: Loop condition is true. Entering loop body
for (i = 0; i < max98373->cache_num; i++)
^
sound/soc/codecs/max98373-sdw.c:789:26: note: Assigned value is garbage or undefined
max98373->cache[i].reg = max98373_sdw_cache_reg[i];
^ ~~~~~~~~~~~~~~~~~~~~~~~~~
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.
Suppressed 4 warnings (4 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.
4 warnings generated.
Suppressed 4 warnings (4 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.
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.
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.
drivers/rpmsg/qcom_glink_native.c:432: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(req.name, channel->name);
^~~~~~
drivers/rpmsg/qcom_glink_native.c:432: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(req.name, channel->name);
^~~~~~
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.
Suppressed 4 warnings (3 in non-user code, 1 with check filters).
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/soundwire/qcom.c:773:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = of_property_read_u8_array(np, "qcom,ports-block-pack-mode",
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/soundwire/qcom.c:773:2: note: Value stored to 'ret' is never read
ret = of_property_read_u8_array(np, "qcom,ports-block-pack-mode",
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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.
vim +789 sound/soc/codecs/max98373-sdw.c
56a5b7910e965c Ryan Lee 2020-07-08 766
56a5b7910e965c Ryan Lee 2020-07-08 767 static int max98373_init(struct sdw_slave *slave, struct regmap *regmap)
56a5b7910e965c Ryan Lee 2020-07-08 768 {
56a5b7910e965c Ryan Lee 2020-07-08 769 struct max98373_priv *max98373;
56a5b7910e965c Ryan Lee 2020-07-08 770 int ret;
349dd23931d194 Bard Liao 2020-12-17 771 int i;
56a5b7910e965c Ryan Lee 2020-07-08 772 struct device *dev = &slave->dev;
56a5b7910e965c Ryan Lee 2020-07-08 773
56a5b7910e965c Ryan Lee 2020-07-08 774 /* Allocate and assign private driver data structure */
56a5b7910e965c Ryan Lee 2020-07-08 775 max98373 = devm_kzalloc(dev, sizeof(*max98373), GFP_KERNEL);
56a5b7910e965c Ryan Lee 2020-07-08 776 if (!max98373)
56a5b7910e965c Ryan Lee 2020-07-08 777 return -ENOMEM;
56a5b7910e965c Ryan Lee 2020-07-08 778
56a5b7910e965c Ryan Lee 2020-07-08 779 dev_set_drvdata(dev, max98373);
56a5b7910e965c Ryan Lee 2020-07-08 780 max98373->regmap = regmap;
56a5b7910e965c Ryan Lee 2020-07-08 781 max98373->slave = slave;
56a5b7910e965c Ryan Lee 2020-07-08 782
349dd23931d194 Bard Liao 2020-12-17 783 max98373->cache_num = ARRAY_SIZE(max98373_sdw_cache_reg);
349dd23931d194 Bard Liao 2020-12-17 784 max98373->cache = devm_kcalloc(dev, max98373->cache_num,
349dd23931d194 Bard Liao 2020-12-17 785 sizeof(*max98373->cache),
349dd23931d194 Bard Liao 2020-12-17 786 GFP_KERNEL);
349dd23931d194 Bard Liao 2020-12-17 787
349dd23931d194 Bard Liao 2020-12-17 788 for (i = 0; i < max98373->cache_num; i++)
349dd23931d194 Bard Liao 2020-12-17 @789 max98373->cache[i].reg = max98373_sdw_cache_reg[i];
349dd23931d194 Bard Liao 2020-12-17 790
56a5b7910e965c Ryan Lee 2020-07-08 791 /* Read voltage and slot configuration */
56a5b7910e965c Ryan Lee 2020-07-08 792 max98373_slot_config(dev, max98373);
56a5b7910e965c Ryan Lee 2020-07-08 793
56a5b7910e965c Ryan Lee 2020-07-08 794 max98373->hw_init = false;
56a5b7910e965c Ryan Lee 2020-07-08 795 max98373->pm_init_once = false;
56a5b7910e965c Ryan Lee 2020-07-08 796
56a5b7910e965c Ryan Lee 2020-07-08 797 /* codec registration */
56a5b7910e965c Ryan Lee 2020-07-08 798 ret = devm_snd_soc_register_component(dev, &soc_codec_dev_max98373_sdw,
56a5b7910e965c Ryan Lee 2020-07-08 799 max98373_sdw_dai,
56a5b7910e965c Ryan Lee 2020-07-08 800 ARRAY_SIZE(max98373_sdw_dai));
56a5b7910e965c Ryan Lee 2020-07-08 801 if (ret < 0)
56a5b7910e965c Ryan Lee 2020-07-08 802 dev_err(dev, "Failed to register codec: %d\n", ret);
56a5b7910e965c Ryan Lee 2020-07-08 803
56a5b7910e965c Ryan Lee 2020-07-08 804 return ret;
56a5b7910e965c Ryan Lee 2020-07-08 805 }
56a5b7910e965c Ryan Lee 2020-07-08 806
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 26950 bytes --]
next reply other threads:[~2021-08-18 2:09 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-18 2:09 kernel test robot [this message]
2021-08-22 20:14 sound/soc/codecs/max98373-sdw.c:789:26: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign] kernel test robot
2021-11-28 12:59 kernel test robot
2021-12-01 14:05 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=202108181058.Mle7bRXN-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/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.