CC: l...@lists.linux.dev
CC: kbuild-...@lists.01.org
BCC: l...@intel.com
CC: linux-ker...@vger.kernel.org
TO: Marek Vasut <ma...@denx.de>
CC: Sakari Ailus <sakari.ai...@linux.intel.com>
CC: Michael Tretter <m.tret...@pengutronix.de>

tree:   git://linuxtv.org/hverkuil/media_tree.git for-v5.18a
head:   d207c611f421052a57dd249fa3f941c8c9b7503e
commit: 51ef2be546e2e480e56fdb59fdeb9a4406e8d52e [271/348] media: i2c: 
isl7998x: Add driver for Intersil ISL7998x
:::::: branch date: 5 hours ago
:::::: commit date: 8 days ago
config: arm-randconfig-c002-20220310 
(https://download.01.org/0day-ci/archive/20220312/202203120218.uqrmchts-...@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 
276ca87382b8f16a65bddac700202924228982f6)
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
        git remote add hverkuil-media-tree 
git://linuxtv.org/hverkuil/media_tree.git
        git fetch --no-tags hverkuil-media-tree for-v5.18a
        git checkout 51ef2be546e2e480e56fdb59fdeb9a4406e8d52e
        # 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 >>)
                   ^
   drivers/media/i2c/ccs/ccs-data.c:829:3: note: Control jumps to 'case 
CCS_DATA_BLOCK_ID_MODULE_RULE_BASED_BLOCK:'  at line 890
                   switch (block_id) {
                   ^
   drivers/media/i2c/ccs/ccs-data.c:891:11: note: Calling 'ccs_data_parse_rules'
                           rval = ccs_data_parse_rules(
                                  ^~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/ccs/ccs-data.c:435:39: note: 'rules' initialized to a null 
pointer value
           struct ccs_rule *rules_base = NULL, *rules = NULL, *next_rule = NULL;
                                                ^~~~~
   drivers/media/i2c/ccs/ccs-data.c:440:11: note: Field 'base' is non-null
           if (bin->base) {
                    ^
   drivers/media/i2c/ccs/ccs-data.c:440:2: note: Taking true branch
           if (bin->base) {
           ^
   drivers/media/i2c/ccs/ccs-data.c:442:4: note: Calling 'bin_alloc'
                           bin_alloc(bin, sizeof(*rules) * *__num_rules);
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/ccs/ccs-data.c:29:6: note: Assuming the condition is false
           if (bin->end - bin->now < len)
               ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/ccs/ccs-data.c:29:2: note: Taking false branch
           if (bin->end - bin->now < len)
           ^
   drivers/media/i2c/ccs/ccs-data.c:35:2: note: Returning without writing to 
'bin->base', which participates in a condition later
           return ptr;
           ^
   drivers/media/i2c/ccs/ccs-data.c:442:4: note: Returning from 'bin_alloc'
                           bin_alloc(bin, sizeof(*rules) * *__num_rules);
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/ccs/ccs-data.c:443:8: note: 'rules_base' is non-null
                   if (!rules_base)
                        ^~~~~~~~~~
   drivers/media/i2c/ccs/ccs-data.c:443:3: note: Taking false branch
                   if (!rules_base)
                   ^
   drivers/media/i2c/ccs/ccs-data.c:447:2: note: Loop condition is true.  
Entering loop body
           while (__next_rule < endp) {
           ^
   drivers/media/i2c/ccs/ccs-data.c:456:7: note: Assuming 'rval' is >= 0
                   if (rval < 0)
                       ^~~~~~~~
   drivers/media/i2c/ccs/ccs-data.c:456:3: note: Taking false branch
                   if (rval < 0)
                   ^
   drivers/media/i2c/ccs/ccs-data.c:461:8: note: Assuming the condition is true
                   if (!is_contained(__rule_type, endp))
                        ^
   drivers/media/i2c/ccs/ccs-data.c:55:3: note: expanded from macro 
'is_contained'
           (sizeof(*var) <= (endp) - (void *)(var))
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/ccs/ccs-data.c:461:3: note: Taking false branch
                   if (!is_contained(__rule_type, endp))
                   ^
   drivers/media/i2c/ccs/ccs-data.c:467:3: note: Control jumps to 'case 
CCS_DATA_BLOCK_RULE_ID_PDAF_READOUT:'  at line 546
                   switch (*__rule_type) {
                   ^
   drivers/media/i2c/ccs/ccs-data.c:548:11: note: Passing null pointer value 
via 2nd parameter 'pdaf_readout'
                                                              
&rules->pdaf_readout,
                                                              
^~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/ccs/ccs-data.c:547:11: note: Calling 
'ccs_data_parse_pdaf_readout'
                           rval = ccs_data_parse_pdaf_readout(bin,
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/ccs/ccs-data.c:412:6: note: Assuming the condition is false
           if (!is_contained(__pdaf, endp))
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/ccs/ccs-data.c:412:2: note: Taking false branch
           if (!is_contained(__pdaf, endp))
           ^
   drivers/media/i2c/ccs/ccs-data.c:415:12: note: Field 'base' is non-null
           if (!bin->base) {
                     ^
   drivers/media/i2c/ccs/ccs-data.c:415:2: note: Taking false branch
           if (!bin->base) {
           ^
   drivers/media/i2c/ccs/ccs-data.c:418:17: note: Dereference of null pointer 
(loaded from variable 'pdaf_readout')
                   *pdaf_readout = bin_alloc(bin, sizeof(**pdaf_readout));
                    ~~~~~~~~~~~~ ^
   Suppressed 9 warnings (9 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.
   10 warnings generated.
   Suppressed 10 warnings (9 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.
   10 warnings generated.
   Suppressed 10 warnings (9 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.
   10 warnings generated.
   Suppressed 10 warnings (9 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.
   10 warnings generated.
   Suppressed 10 warnings (9 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.
   10 warnings generated.
   Suppressed 10 warnings (9 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.
   10 warnings generated.
   Suppressed 10 warnings (9 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.
   12 warnings generated.
>> drivers/media/i2c/isl7998x.c:677:17: warning: Value stored to 'dev' during 
>> its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = isl7998x->subdev.dev;
                          ^~~   ~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/isl7998x.c:677:17: note: Value stored to 'dev' during its 
initialization is never read
           struct device *dev = isl7998x->subdev.dev;
                          ^~~   ~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/isl7998x.c:919:17: warning: Value stored to 'dev' during 
its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = &client->dev;
                          ^~~   ~~~~~~~~~~~~
   drivers/media/i2c/isl7998x.c:919:17: note: Value stored to 'dev' during its 
initialization is never read
           struct device *dev = &client->dev;
                          ^~~   ~~~~~~~~~~~~
   Suppressed 10 warnings (9 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.
   9 warnings generated.
   Suppressed 9 warnings (9 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.
   10 warnings generated.
   Suppressed 10 warnings (9 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.
   14 warnings generated.
   drivers/media/i2c/rdacm21.c:373:11: warning: The left operand of '==' is a 
garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
                   if (val == OV10640_ID_HIGH)
                           ^
   drivers/media/i2c/rdacm21.c:550:6: note: Assuming 'dev' is non-null
           if (!dev)
               ^~~~
   drivers/media/i2c/rdacm21.c:550:2: note: Taking false branch
           if (!dev)
           ^
   drivers/media/i2c/rdacm21.c:557:6: note: 'ret' is >= 0
           if (ret < 0) {
               ^~~
   drivers/media/i2c/rdacm21.c:557:2: note: Taking false branch
           if (ret < 0) {
           ^
   drivers/media/i2c/rdacm21.c:564:2: note: Taking false branch
           if (IS_ERR(dev->isp))
           ^
   drivers/media/i2c/rdacm21.c:567:8: note: Calling 'rdacm21_initialize'
           ret = rdacm21_initialize(dev);
                 ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/rdacm21.c:481:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/media/i2c/rdacm21.c:481:2: note: Taking false branch
           if (ret)
           ^
   drivers/media/i2c/rdacm21.c:489:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/media/i2c/rdacm21.c:489:2: note: Taking false branch
           if (ret)
           ^
   drivers/media/i2c/rdacm21.c:493:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/media/i2c/rdacm21.c:493:2: note: Taking false branch
           if (ret)
           ^
   drivers/media/i2c/rdacm21.c:501:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/media/i2c/rdacm21.c:501:2: note: Taking false branch
           if (ret)
           ^
   drivers/media/i2c/rdacm21.c:505:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/media/i2c/rdacm21.c:505:2: note: Taking false branch
           if (ret)
           ^
   drivers/media/i2c/rdacm21.c:510:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/media/i2c/rdacm21.c:510:2: note: Taking false branch
           if (ret)
           ^
   drivers/media/i2c/rdacm21.c:514:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/media/i2c/rdacm21.c:514:2: note: Taking false branch
           if (ret)
           ^
   drivers/media/i2c/rdacm21.c:520:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/media/i2c/rdacm21.c:520:2: note: Taking false branch
           if (ret)
           ^
   drivers/media/i2c/rdacm21.c:526:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/media/i2c/rdacm21.c:526:2: note: Taking false branch
           if (ret)
           ^
   drivers/media/i2c/rdacm21.c:530:8: note: Calling 'ov490_initialize'
           ret = ov490_initialize(dev);
                 ^~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/rdacm21.c:399:2: note: Loop condition is true.  Entering 
loop body
           for (i = 0; i < OV490_PID_TIMEOUT; ++i) {

vim +/dev +677 drivers/media/i2c/isl7998x.c

51ef2be546e2e4 Marek Vasut 2022-02-17  664  
51ef2be546e2e4 Marek Vasut 2022-02-17  665  static int isl7998x_init(struct 
isl7998x *isl7998x)
51ef2be546e2e4 Marek Vasut 2022-02-17  666  {
51ef2be546e2e4 Marek Vasut 2022-02-17  667      const unsigned int lanes = 
isl7998x->nr_mipi_lanes;
51ef2be546e2e4 Marek Vasut 2022-02-17  668      const u32 
isl7998x_video_in_chan_map[] = { 0x00, 0x11, 0x02, 0x02 };
51ef2be546e2e4 Marek Vasut 2022-02-17  669      const struct reg_sequence 
isl7998x_init_seq_custom[] = {
51ef2be546e2e4 Marek Vasut 2022-02-17  670              { 
ISL7998X_REG_P0_VIDEO_IN_CHAN_CTL,
51ef2be546e2e4 Marek Vasut 2022-02-17  671                
isl7998x_video_in_chan_map[isl7998x->nr_inputs - 1] },
51ef2be546e2e4 Marek Vasut 2022-02-17  672              { 
ISL7998X_REG_P0_CLK_CTL_4,
51ef2be546e2e4 Marek Vasut 2022-02-17  673                (lanes == 1) ? 0x40 : 
0x41 },
51ef2be546e2e4 Marek Vasut 2022-02-17  674              { 
ISL7998X_REG_P5_LI_ENGINE_CTL,
51ef2be546e2e4 Marek Vasut 2022-02-17  675                (lanes == 1) ? 0x01 : 
0x02 },
51ef2be546e2e4 Marek Vasut 2022-02-17  676      };
51ef2be546e2e4 Marek Vasut 2022-02-17 @677      struct device *dev = 
isl7998x->subdev.dev;
51ef2be546e2e4 Marek Vasut 2022-02-17  678      struct regmap *regmap = 
isl7998x->regmap;
51ef2be546e2e4 Marek Vasut 2022-02-17  679      int ret;
51ef2be546e2e4 Marek Vasut 2022-02-17  680  
51ef2be546e2e4 Marek Vasut 2022-02-17  681      dev_dbg(dev, "configuring %d 
lanes for %d inputs (norm %s)\n",
51ef2be546e2e4 Marek Vasut 2022-02-17  682              
isl7998x->nr_mipi_lanes, isl7998x->nr_inputs,
51ef2be546e2e4 Marek Vasut 2022-02-17  683              
v4l2_norm_to_name(isl7998x->norm));
51ef2be546e2e4 Marek Vasut 2022-02-17  684  
51ef2be546e2e4 Marek Vasut 2022-02-17  685      ret = 
regmap_register_patch(regmap, isl7998x_init_seq_1,
51ef2be546e2e4 Marek Vasut 2022-02-17  686                                  
ARRAY_SIZE(isl7998x_init_seq_1));
51ef2be546e2e4 Marek Vasut 2022-02-17  687      if (ret)
51ef2be546e2e4 Marek Vasut 2022-02-17  688              return ret;
51ef2be546e2e4 Marek Vasut 2022-02-17  689  
51ef2be546e2e4 Marek Vasut 2022-02-17  690      mutex_lock(&isl7998x->lock);
51ef2be546e2e4 Marek Vasut 2022-02-17  691      ret = 
isl7998x_set_standard(isl7998x, isl7998x->norm);
51ef2be546e2e4 Marek Vasut 2022-02-17  692      mutex_unlock(&isl7998x->lock);
51ef2be546e2e4 Marek Vasut 2022-02-17  693      if (ret)
51ef2be546e2e4 Marek Vasut 2022-02-17  694              return ret;
51ef2be546e2e4 Marek Vasut 2022-02-17  695  
51ef2be546e2e4 Marek Vasut 2022-02-17  696      ret = 
regmap_register_patch(regmap, isl7998x_init_seq_custom,
51ef2be546e2e4 Marek Vasut 2022-02-17  697                                  
ARRAY_SIZE(isl7998x_init_seq_custom));
51ef2be546e2e4 Marek Vasut 2022-02-17  698      if (ret)
51ef2be546e2e4 Marek Vasut 2022-02-17  699              return ret;
51ef2be546e2e4 Marek Vasut 2022-02-17  700  
51ef2be546e2e4 Marek Vasut 2022-02-17  701      return 
regmap_register_patch(regmap, isl7998x_init_seq_2,
51ef2be546e2e4 Marek Vasut 2022-02-17  702                                   
ARRAY_SIZE(isl7998x_init_seq_2));
51ef2be546e2e4 Marek Vasut 2022-02-17  703  }
51ef2be546e2e4 Marek Vasut 2022-02-17  704  

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

Reply via email to