CC: l...@lists.linux.dev
CC: kbuild-...@lists.01.org
BCC: l...@intel.com
CC: linux-ker...@vger.kernel.org
TO: Srinivasa Rao Mandadapu <quic_sriva...@quicinc.com>
CC: Mark Brown <broo...@kernel.org>
CC: Venkata Prasad Potturu <quic_pott...@quicinc.com>
CC: Srinivas Kandagatla <srinivas.kandaga...@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-...@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 <l...@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_sriva...@quicinc.com>
:::::: CC: Mark Brown <broo...@kernel.org>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to