CC: l...@lists.linux.dev
CC: kbuild-...@lists.01.org
In-Reply-To: <20211129112708.3219754-4-m.tret...@pengutronix.de>
References: <20211129112708.3219754-4-m.tret...@pengutronix.de>
TO: Michael Tretter <m.tret...@pengutronix.de>
TO: linux-me...@vger.kernel.org
TO: devicet...@vger.kernel.org
TO: Marek Vasut <ma...@denx.de>
CC: Rob Herring <robh...@kernel.org>
CC: Mauro Carvalho Chehab <mche...@kernel.org>
CC: Sakari Ailus <sakari.ai...@linux.intel.com>
CC: p.za...@pengutronix.de
CC: Ian Arkver <ian.arkver....@gmail.com>
CC: ker...@pengutronix.de
CC: Michael Tretter <m.tret...@pengutronix.de>

Hi Michael,

I love your patch! Perhaps something to improve:

[auto build test WARNING on media-tree/master]
[also build test WARNING on robh/for-next linus/master v5.16-rc3 next-20211203]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/0day-ci/linux/commits/Michael-Tretter/media-i2c-isl7998x-Add-driver-for-Intersil-ISL7998x/20211129-204304
base:   git://linuxtv.org/media_tree.git master
:::::: branch date: 5 days ago
:::::: commit date: 5 days ago
config: i386-randconfig-c001-20211130 
(https://download.01.org/0day-ci/archive/20211204/202112041345.avl2qjn6-...@intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
25eb7fa01d7ebbe67648ea03841cda55b4239ab2)
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
        # 
https://github.com/0day-ci/linux/commit/0cd375b25d1d515c40b89e8aaffd0456a19ecffb
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Michael-Tretter/media-i2c-isl7998x-Add-driver-for-Intersil-ISL7998x/20211129-204304
        git checkout 0cd375b25d1d515c40b89e8aaffd0456a19ecffb
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=i386 
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 >>)
                         ^
   mm/mmap.c:3132:6: note: Assuming the condition is false
           if (unlikely(mm_is_oom_victim(mm))) {
               ^
   include/linux/compiler.h:78:22: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   mm/mmap.c:3132:2: note: Taking false branch
           if (unlikely(mm_is_oom_victim(mm))) {
           ^
   mm/mmap.c:3156:6: note: Assuming field 'locked_vm' is 0
           if (mm->locked_vm)
               ^~~~~~~~~~~~~
   mm/mmap.c:3156:2: note: Taking false branch
           if (mm->locked_vm)
           ^
   mm/mmap.c:3159:2: note: Calling 'arch_exit_mmap'
           arch_exit_mmap(mm);
           ^~~~~~~~~~~~~~~~~~
   arch/x86/include/asm/mmu_context.h:176:2: note: Calling 
'paravirt_arch_exit_mmap'
           paravirt_arch_exit_mmap(mm);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/include/asm/paravirt.h:97:2: note: Assigned value is garbage or 
undefined
           PVOP_VCALL1(mmu.exit_mmap, mm);
           ^
   arch/x86/include/asm/paravirt_types.h:531:2: note: expanded from macro 
'PVOP_VCALL1'
           __PVOP_VCALL(op, PVOP_CALL_ARG1(arg1))
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/include/asm/paravirt_types.h:492:8: note: expanded from macro 
'__PVOP_VCALL'
           (void)____PVOP_CALL(, op, CLBR_ANY, PVOP_VCALL_CLOBBERS,        \
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/include/asm/paravirt_types.h:447:3: note: expanded from macro 
'____PVOP_CALL'
                   PVOP_CALL_ARGS;                                         \
                   ^~~~~~~~~~~~~~
   arch/x86/include/asm/paravirt_types.h:387:16: note: expanded from macro 
'PVOP_CALL_ARGS'
           unsigned long __eax = __eax, __edx = __edx, __ecx = __ecx;
                         ^       ~~~~~
   Suppressed 6 warnings (6 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.
   6 warnings generated.
   Suppressed 6 warnings (6 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.
   6 warnings generated.
   arch/x86/include/asm/paravirt.h:55:2: warning: Assigned value is garbage or 
undefined [clang-analyzer-core.uninitialized.Assign]
           PVOP_VCALL0(cpu.io_delay);
           ^
   arch/x86/include/asm/paravirt_types.h:512:2: note: expanded from macro 
'PVOP_VCALL0'
           __PVOP_VCALL(op)
           ^
   arch/x86/include/asm/paravirt_types.h:492:8: note: expanded from macro 
'__PVOP_VCALL'
           (void)____PVOP_CALL(, op, CLBR_ANY, PVOP_VCALL_CLOBBERS,        \
                 ^
   arch/x86/include/asm/paravirt_types.h:447:3: note: expanded from macro 
'____PVOP_CALL'
                   PVOP_CALL_ARGS;                                         \
                   ^
   arch/x86/include/asm/paravirt_types.h:387:16: note: expanded from macro 
'PVOP_CALL_ARGS'
           unsigned long __eax = __eax, __edx = __edx, __ecx = __ecx;
                         ^
   drivers/watchdog/advantechwdt.c:295:2: note: Calling 'advwdt_disable'
           advwdt_disable();
           ^~~~~~~~~~~~~~~~
   drivers/watchdog/advantechwdt.c:94:2: note: Calling 'inb_p'
           inb_p(wdt_stop);
           ^
   arch/x86/include/asm/io.h:341:15: note: expanded from macro 'inb_p'
   #define inb_p inb_p
                 ^
   arch/x86/include/asm/io.h:334:1: note: Calling 'slow_down_io'
   BUILDIO(b, b, char)
   ^
   arch/x86/include/asm/io.h:298:2: note: expanded from macro 'BUILDIO'
           slow_down_io();                                                 \
           ^~~~~~~~~~~~~~
   arch/x86/include/asm/paravirt.h:55:2: note: Assigned value is garbage or 
undefined
           PVOP_VCALL0(cpu.io_delay);
           ^
   arch/x86/include/asm/paravirt_types.h:512:2: note: expanded from macro 
'PVOP_VCALL0'
           __PVOP_VCALL(op)
           ^~~~~~~~~~~~~~~~
   arch/x86/include/asm/paravirt_types.h:492:8: note: expanded from macro 
'__PVOP_VCALL'
           (void)____PVOP_CALL(, op, CLBR_ANY, PVOP_VCALL_CLOBBERS,        \
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/include/asm/paravirt_types.h:447:3: note: expanded from macro 
'____PVOP_CALL'
                   PVOP_CALL_ARGS;                                         \
                   ^~~~~~~~~~~~~~
   arch/x86/include/asm/paravirt_types.h:387:16: note: expanded from macro 
'PVOP_CALL_ARGS'
           unsigned long __eax = __eax, __edx = __edx, __ecx = __ecx;
                         ^       ~~~~~
   Suppressed 5 warnings (5 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.
   5 warnings generated.
   Suppressed 5 warnings (5 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.
   5 warnings generated.
   Suppressed 5 warnings (5 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.
   9 warnings generated.
>> drivers/media/i2c/isl7998x.c:642: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:642:17: note: Value stored to 'dev' during its 
initialization is never read
           struct device *dev = isl7998x->subdev.dev;
                          ^~~   ~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/isl7998x.c:863: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:863:17: note: Value stored to 'dev' during its 
initialization is never read
           struct device *dev = &client->dev;
                          ^~~   ~~~~~~~~~~~~
   Suppressed 7 warnings (7 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.
   6 warnings generated.
   Suppressed 6 warnings (6 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.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   11 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 +642 drivers/media/i2c/isl7998x.c

0cd375b25d1d51 Marek Vasut 2021-11-29  629  
0cd375b25d1d51 Marek Vasut 2021-11-29  630  static int isl7998x_init(struct 
isl7998x *isl7998x)
0cd375b25d1d51 Marek Vasut 2021-11-29  631  {
0cd375b25d1d51 Marek Vasut 2021-11-29  632      const unsigned int lanes = 
isl7998x->nr_mipi_lanes;
0cd375b25d1d51 Marek Vasut 2021-11-29  633      const u32 
isl7998x_video_in_chan_map[] = { 0x00, 0x11, 0x02, 0x02 };
0cd375b25d1d51 Marek Vasut 2021-11-29  634      const struct reg_sequence 
isl7998x_init_seq_custom[] = {
0cd375b25d1d51 Marek Vasut 2021-11-29  635              { 
ISL7998x_REG_P0_VIDEO_IN_CHAN_CTL,
0cd375b25d1d51 Marek Vasut 2021-11-29  636                
isl7998x_video_in_chan_map[isl7998x->nr_inputs - 1] },
0cd375b25d1d51 Marek Vasut 2021-11-29  637              { 
ISL7998x_REG_P0_CLK_CTL_4,
0cd375b25d1d51 Marek Vasut 2021-11-29  638                (lanes == 1) ? 0x40 : 
0x41 },
0cd375b25d1d51 Marek Vasut 2021-11-29  639              { 
ISL7998x_REG_P5_LI_ENGINE_CTL,
0cd375b25d1d51 Marek Vasut 2021-11-29  640                (lanes == 1) ? 0x01 : 
0x02 },
0cd375b25d1d51 Marek Vasut 2021-11-29  641      };
0cd375b25d1d51 Marek Vasut 2021-11-29 @642      struct device *dev = 
isl7998x->subdev.dev;
0cd375b25d1d51 Marek Vasut 2021-11-29  643      struct regmap *regmap = 
isl7998x->regmap;
0cd375b25d1d51 Marek Vasut 2021-11-29  644      int ret;
0cd375b25d1d51 Marek Vasut 2021-11-29  645  
0cd375b25d1d51 Marek Vasut 2021-11-29  646      dev_dbg(dev, "configuring %d 
lanes for %d inputs (norm 0x%llx)\n",
0cd375b25d1d51 Marek Vasut 2021-11-29  647              
isl7998x->nr_mipi_lanes, isl7998x->nr_inputs,
0cd375b25d1d51 Marek Vasut 2021-11-29  648              isl7998x->norm);
0cd375b25d1d51 Marek Vasut 2021-11-29  649  
0cd375b25d1d51 Marek Vasut 2021-11-29  650      ret = 
regmap_register_patch(regmap, isl7998x_init_seq_1,
0cd375b25d1d51 Marek Vasut 2021-11-29  651                                  
ARRAY_SIZE(isl7998x_init_seq_1));
0cd375b25d1d51 Marek Vasut 2021-11-29  652      if (ret)
0cd375b25d1d51 Marek Vasut 2021-11-29  653              return ret;
0cd375b25d1d51 Marek Vasut 2021-11-29  654  
0cd375b25d1d51 Marek Vasut 2021-11-29  655      ret = 
isl7998x_set_standard(isl7998x, isl7998x->norm);
0cd375b25d1d51 Marek Vasut 2021-11-29  656      if (ret)
0cd375b25d1d51 Marek Vasut 2021-11-29  657              return ret;
0cd375b25d1d51 Marek Vasut 2021-11-29  658  
0cd375b25d1d51 Marek Vasut 2021-11-29  659      ret = 
regmap_register_patch(regmap, isl7998x_init_seq_custom,
0cd375b25d1d51 Marek Vasut 2021-11-29  660                                  
ARRAY_SIZE(isl7998x_init_seq_custom));
0cd375b25d1d51 Marek Vasut 2021-11-29  661      if (ret)
0cd375b25d1d51 Marek Vasut 2021-11-29  662              return ret;
0cd375b25d1d51 Marek Vasut 2021-11-29  663  
0cd375b25d1d51 Marek Vasut 2021-11-29  664      return 
regmap_register_patch(regmap, isl7998x_init_seq_2,
0cd375b25d1d51 Marek Vasut 2021-11-29  665                                   
ARRAY_SIZE(isl7998x_init_seq_2));
0cd375b25d1d51 Marek Vasut 2021-11-29  666  }
0cd375b25d1d51 Marek Vasut 2021-11-29  667  

---
0-DAY CI Kernel Test Service, Intel Corporation
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