All of lore.kernel.org
 help / color / mirror / Atom feed
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

             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.