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