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