From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: sound/soc/qcom/lpass-cdc-dma.c:274:7: warning: Branch condition evaluates to a garbage value [clang-analyzer-core.uninitialized.Branch]
Date: Fri, 08 Apr 2022 05:22:48 +0800 [thread overview]
Message-ID: <202204080500.DekgLkn3-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 15285 bytes --]
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
CC: Mark Brown <broonie@kernel.org>
CC: Venkata Prasad Potturu <quic_potturu@quicinc.com>
CC: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 42e7a03d3badebd4e70aea5362d6914dfc7c220b
commit: b62c4e5fba2f910bc9f23ae152d11627e4c2f00f ASoC: qcom: lpass-sc7280: Add platform driver for lpass audio
date: 6 weeks ago
:::::: branch date: 5 hours ago
:::::: commit date: 6 weeks ago
config: arm-randconfig-c002-20220406 (https://download.01.org/0day-ci/archive/20220408/202204080500.DekgLkn3-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project c4a1b07d0979e7ff20d7d541af666d822d66b566)
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=b62c4e5fba2f910bc9f23ae152d11627e4c2f00f
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout b62c4e5fba2f910bc9f23ae152d11627e4c2f00f
# save the config file 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 >>)
sound/soc/sh/rcar/rsnd.h:818:41: note: expanded from macro 'rsnd_src_get_out_rate'
#define rsnd_src_get_out_rate(priv, io) rsnd_src_get_rate(priv, io, 0)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/sh/rcar/src.c:117:29: note: RSND_MOD_SRC is < RSND_MOD_MAX
struct rsnd_mod *src_mod = rsnd_io_to_mod_src(io);
^
sound/soc/sh/rcar/rsnd.h:521:32: note: expanded from macro 'rsnd_io_to_mod_src'
#define rsnd_io_to_mod_src(io) rsnd_io_to_mod((io), RSND_MOD_SRC)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/sh/rcar/rsnd.h:517:32: note: expanded from macro 'rsnd_io_to_mod'
#define rsnd_io_to_mod(io, i) ((i) < RSND_MOD_MAX ? (io)->mod[(i)] : NULL)
^~~
sound/soc/sh/rcar/src.c:117:29: note: '?' condition is true
struct rsnd_mod *src_mod = rsnd_io_to_mod_src(io);
^
sound/soc/sh/rcar/rsnd.h:521:32: note: expanded from macro 'rsnd_io_to_mod_src'
#define rsnd_io_to_mod_src(io) rsnd_io_to_mod((io), RSND_MOD_SRC)
^
sound/soc/sh/rcar/rsnd.h:517:32: note: expanded from macro 'rsnd_io_to_mod'
#define rsnd_io_to_mod(io, i) ((i) < RSND_MOD_MAX ? (io)->mod[(i)] : NULL)
^
sound/soc/sh/rcar/src.c:118:36: note: Field 'substream' is non-null
struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io);
^
sound/soc/sh/rcar/rsnd.h:529:39: note: expanded from macro 'rsnd_io_to_runtime'
#define rsnd_io_to_runtime(io) ((io)->substream ? \
^
sound/soc/sh/rcar/src.c:118:36: note: '?' condition is true
struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io);
^
sound/soc/sh/rcar/rsnd.h:529:33: note: expanded from macro 'rsnd_io_to_runtime'
#define rsnd_io_to_runtime(io) ((io)->substream ? \
^
sound/soc/sh/rcar/src.c:130:6: note: Assuming 'is_play' is equal to 'is_in'
if (is_play == is_in)
^~~~~~~~~~~~~~~~
sound/soc/sh/rcar/src.c:130:2: note: Taking true branch
if (is_play == is_in)
^
sound/soc/sh/rcar/src.c:131:3: note: Returning zero
return runtime->rate;
^~~~~~~~~~~~~~~~~~~~
sound/soc/sh/rcar/src.c:222:9: note: Returning from 'rsnd_src_get_rate'
fout = rsnd_src_get_out_rate(priv, io);
^
sound/soc/sh/rcar/rsnd.h:818:41: note: expanded from macro 'rsnd_src_get_out_rate'
#define rsnd_src_get_out_rate(priv, io) rsnd_src_get_rate(priv, io, 0)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/sh/rcar/src.c:222:2: note: The value 0 is assigned to 'fout'
fout = rsnd_src_get_out_rate(priv, io);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/sh/rcar/src.c:227:6: note: 'fin' is equal to 'fout'
if (fin == fout)
^~~
sound/soc/sh/rcar/src.c:227:2: note: Taking true branch
if (fin == fout)
^
sound/soc/sh/rcar/src.c:234:6: note: 'ratio' is <= 600
if (ratio > 600) {
^~~~~
sound/soc/sh/rcar/src.c:234:2: note: Taking false branch
if (ratio > 600) {
^
sound/soc/sh/rcar/src.c:251:6: note: Assuming 'use_src' is not equal to 0
if (use_src) {
^~~~~~~
sound/soc/sh/rcar/src.c:251:2: note: Taking true branch
if (use_src) {
^
sound/soc/sh/rcar/src.c:256:3: note: '__base' initialized to 0
do_div(n, fout);
^
include/asm-generic/div64.h:220:2: note: expanded from macro 'do_div'
uint32_t __base = (base); \
^~~~~~~~~~~~~~~
sound/soc/sh/rcar/src.c:256:3: note: Left side of '&&' is false
do_div(n, fout);
^
include/asm-generic/div64.h:223:35: note: expanded from macro 'do_div'
if (__builtin_constant_p(__base) && \
^
sound/soc/sh/rcar/src.c:256:3: note: Left side of '&&' is false
do_div(n, fout);
^
include/asm-generic/div64.h:227:42: note: expanded from macro 'do_div'
} else if (__builtin_constant_p(__base) && \
^
sound/soc/sh/rcar/src.c:256:3: note: Taking true branch
do_div(n, fout);
^
include/asm-generic/div64.h:234:9: note: expanded from macro 'do_div'
} else if (likely(((n) >> 32) == 0)) { \
^
sound/soc/sh/rcar/src.c:256:3: note: Division by zero
do_div(n, fout);
^
include/asm-generic/div64.h:235:25: note: expanded from macro 'do_div'
__rem = (uint32_t)(n) % __base; \
~~~~~~~~~~~~~~^~~~~~~~
1 warning generated.
>> sound/soc/qcom/lpass-cdc-dma.c:274:7: warning: Branch condition evaluates to a garbage value [clang-analyzer-core.uninitialized.Branch]
if (!dmactl)
^~~~~~~
sound/soc/qcom/lpass-cdc-dma.c:261:2: note: 'dmactl' declared without an initial value
struct lpaif_dmactl *dmactl;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/qcom/lpass-cdc-dma.c:264:2: note: Control jumps to 'case 3:' at line 272
switch (cmd) {
^
sound/soc/qcom/lpass-cdc-dma.c:273:3: note: Calling '__lpass_get_dmactl_handle'
__lpass_get_dmactl_handle(substream, dai, &dmactl, &id);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/qcom/lpass-cdc-dma.c:43:2: note: Control jumps to the 'default' case at line 56
switch (dai_id) {
^
sound/soc/qcom/lpass-cdc-dma.c:57:3: note: Loop condition is false. Exiting loop
dev_err(soc_runtime->dev, "invalid dai id for dma ctl: %d\n", dai_id);
^
include/linux/dev_printk.h:144:2: note: expanded from macro 'dev_err'
dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__)
^
include/linux/dev_printk.h:109:3: note: expanded from macro 'dev_printk_index_wrap'
dev_printk_index_emit(level, fmt); \
^
include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit'
printk_index_subsys_emit("%s %s: ", level, fmt)
^
include/linux/printk.h:413:2: note: expanded from macro 'printk_index_subsys_emit'
__printk_index_emit(fmt, level, subsys_fmt_prefix)
^
include/linux/printk.h:392:34: note: expanded from macro '__printk_index_emit'
#define __printk_index_emit(...) do {} while (0)
^
sound/soc/qcom/lpass-cdc-dma.c:58:3: note: Execution continues on line 57
break;
^
sound/soc/qcom/lpass-cdc-dma.c:60:1: note: Returning without writing to '*dmactl'
}
^
sound/soc/qcom/lpass-cdc-dma.c:273:3: note: Returning from '__lpass_get_dmactl_handle'
__lpass_get_dmactl_handle(substream, dai, &dmactl, &id);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/qcom/lpass-cdc-dma.c:274:7: note: Branch condition evaluates to a garbage value
if (!dmactl)
^~~~~~~
1 warning generated.
drivers/iio/gyro/fxas21002c_core.c:137:8: warning: Excessive padding in 'struct fxas21002c_data' (51 padding bytes, where 19 is optimal).
Optimal fields order:
buffer,
timestamp,
mode,
prev_mode,
regmap,
dready_trig,
irq,
vdd,
vddio,
lock,
regmap_fields,
chip_id,
consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
struct fxas21002c_data {
~~~~~~~^~~~~~~~~~~~~~~~~
drivers/iio/gyro/fxas21002c_core.c:137:8: note: Excessive padding in 'struct fxas21002c_data' (51 padding bytes, where 19 is optimal). Optimal fields order: buffer, timestamp, mode, prev_mode, regmap, dready_trig, irq, vdd, vddio, lock, regmap_fields, chip_id, consider reordering the fields or adding explicit padding members
struct fxas21002c_data {
~~~~~~~^~~~~~~~~~~~~~~~~
1 warning generated.
drivers/iio/frequency/adf4371.c:157:8: warning: Excessive padding in 'struct adf4371_state' (42 padding bytes, where 10 is optimal).
Optimal fields order:
buf,
spi,
regmap,
clkin,
chip_info,
clkin_freq,
fpfd,
integer,
fract1,
fract2,
mod2,
rf_div_sel,
ref_div_factor,
lock,
consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
struct adf4371_state {
~~~~~~~^~~~~~~~~~~~~~~
drivers/iio/frequency/adf4371.c:157:8: note: Excessive padding in 'struct adf4371_state' (42 padding bytes, where 10 is optimal). Optimal fields order: buf, spi, regmap, clkin, chip_info, clkin_freq, fpfd, integer, fract1, fract2, mod2, rf_div_sel, ref_div_factor, lock, consider reordering the fields or adding explicit padding members
struct adf4371_state {
~~~~~~~^~~~~~~~~~~~~~~
1 warning generated.
drivers/iio/frequency/admv1013.c:93:8: warning: Excessive padding in 'struct admv1013_state' (32 padding bytes, where 0 is optimal).
Optimal fields order:
data,
det_en,
spi,
clkin,
reg,
input_mode,
quad_se_mode,
nb,
lock,
vim +274 sound/soc/qcom/lpass-cdc-dma.c
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 256
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 257 static int lpass_cdc_dma_daiops_trigger(struct snd_pcm_substream *substream,
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 258 int cmd, struct snd_soc_dai *dai)
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 259 {
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 260 struct snd_soc_pcm_runtime *soc_runtime = asoc_substream_to_rtd(substream);
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 261 struct lpaif_dmactl *dmactl;
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 262 int ret = 0, id;
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 263
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 264 switch (cmd) {
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 265 case SNDRV_PCM_TRIGGER_START:
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 266 case SNDRV_PCM_TRIGGER_RESUME:
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 267 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 268 __lpass_platform_codec_intf_init(dai, substream);
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 269 break;
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 270 case SNDRV_PCM_TRIGGER_STOP:
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 271 case SNDRV_PCM_TRIGGER_SUSPEND:
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 272 case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 273 __lpass_get_dmactl_handle(substream, dai, &dmactl, &id);
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 @274 if (!dmactl)
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 275 return -EINVAL;
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 276
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 277 ret = regmap_fields_write(dmactl->codec_enable, id, LPAIF_DMACTL_ENABLE_OFF);
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 278 if (ret) {
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 279 dev_err(soc_runtime->dev,
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 280 "error writing to dmactl codec_enable reg: %d\n", ret);
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 281 return ret;
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 282 }
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 283 break;
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 284 default:
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 285 ret = -EINVAL;
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 286 dev_err(soc_runtime->dev, "%s: invalid %d interface\n", __func__, cmd);
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 287 break;
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 288 }
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 289 return ret;
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 290 }
b81af585ea54ee9 Srinivasa Rao Mandadapu 2022-02-24 291
:::::: The code at line 274 was first introduced by commit
:::::: b81af585ea54ee9f749391e594ee9cbd44061eae ASoC: qcom: Add lpass CPU driver for codec dma control
:::::: TO: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
:::::: CC: Mark Brown <broonie@kernel.org>
--
0-DAY CI Kernel Test Service
https://01.org/lkp
next reply other threads:[~2022-04-07 21:22 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-07 21:22 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2022-12-10 6:18 sound/soc/qcom/lpass-cdc-dma.c:274:7: warning: Branch condition evaluates to a garbage value [clang-analyzer-core.uninitialized.Branch] kernel test robot
2022-12-08 14:45 kernel test robot
2022-05-07 5:22 kernel test robot
2022-04-10 5:57 kernel test robot
2022-04-07 12:30 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=202204080500.DekgLkn3-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.