CC: l...@lists.linux.dev CC: kbuild-...@lists.01.org BCC: l...@intel.com CC: linux-ker...@vger.kernel.org TO: Kees Cook <keesc...@chromium.org> CC: Miguel Ojeda <oj...@kernel.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 34e047aa16c0123bbae8e2f6df33e5ecc1f56601 commit: c80d92fbb67b2c80b8eeb8759ee79d676eb33520 compiler_types.h: Remove __compiletime_object_size() date: 6 months ago :::::: branch date: 29 hours ago :::::: commit date: 6 months ago config: riscv-randconfig-c006-20220316 (https://download.01.org/0day-ci/archive/20220320/202203200817.ju87mbq5-...@intel.com/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project a6ec1e3d798f8eab43fb3a91028c6ab04e115fcb) 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 riscv cross compiling tool for clang build # apt-get install binutils-riscv64-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c80d92fbb67b2c80b8eeb8759ee79d676eb33520 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout c80d92fbb67b2c80b8eeb8759ee79d676eb33520 # save the config file to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv 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 >>) ^ include/linux/dev_printk.h:218:2: note: expanded from macro 'dev_err_ratelimited' dev_level_ratelimited(dev_err, dev, fmt, ##__VA_ARGS__) ^ include/linux/dev_printk.h:207:2: note: expanded from macro 'dev_level_ratelimited' if (__ratelimit(&_rs)) \ ^ drivers/spmi/spmi-pmic-arb.c:481:3: note: Loop condition is false. Exiting loop dev_err_ratelimited(&pmic_arb->spmic->dev, "failed irqchip transaction on %x\n", ^ include/linux/dev_printk.h:218:2: note: expanded from macro 'dev_err_ratelimited' dev_level_ratelimited(dev_err, dev, fmt, ##__VA_ARGS__) ^ include/linux/dev_printk.h:202:59: note: expanded from macro 'dev_level_ratelimited' #define dev_level_ratelimited(dev_level, dev, fmt, ...) \ ^ drivers/spmi/spmi-pmic-arb.c:483:1: note: Returning without writing to 'buf->type' } ^ drivers/spmi/spmi-pmic-arb.c:607:2: note: Returning from 'qpnpint_spmi_read' qpnpint_spmi_read(d, QPNPINT_REG_SET_TYPE, &type, sizeof(type)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/spmi/spmi-pmic-arb.c:609:6: note: Assuming the condition is false if (flow_type & (IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING)) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/spmi/spmi-pmic-arb.c:609:2: note: Taking false branch if (flow_type & (IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING)) { ^ drivers/spmi/spmi-pmic-arb.c:618:8: note: Assuming the condition is false if ((flow_type & (IRQF_TRIGGER_HIGH)) && ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/spmi/spmi-pmic-arb.c:618:41: note: Left side of '&&' is false if ((flow_type & (IRQF_TRIGGER_HIGH)) && ^ drivers/spmi/spmi-pmic-arb.c:622:13: note: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage type.type &= ~BIT(irq); /* level trig */ ~~~~~~~~~ ^ Suppressed 14 warnings (7 in non-user code, 7 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. 16 warnings generated. Suppressed 16 warnings (9 in non-user code, 7 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. Suppressed 14 warnings (7 in non-user code, 7 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. 13 warnings generated. Suppressed 13 warnings (6 in non-user code, 7 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. 17 warnings generated. drivers/input/keyboard/lm8323.c:333:3: warning: Value stored to 'active' is never read [clang-analyzer-deadcode.DeadStores] active = debounce + 3; ^ ~~~~~~~~~~~~ drivers/input/keyboard/lm8323.c:333:3: note: Value stored to 'active' is never read active = debounce + 3; ^ ~~~~~~~~~~~~ Suppressed 16 warnings (9 in non-user code, 7 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. 16 warnings generated. Suppressed 16 warnings (9 in non-user code, 7 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. 16 warnings generated. Suppressed 16 warnings (9 in non-user code, 7 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. Suppressed 14 warnings (7 in non-user code, 7 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. Suppressed 14 warnings (7 in non-user code, 7 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. Suppressed 14 warnings (7 in non-user code, 7 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. Suppressed 14 warnings (7 in non-user code, 7 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. 16 warnings generated. Suppressed 16 warnings (9 in non-user code, 7 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. 16 warnings generated. Suppressed 16 warnings (9 in non-user code, 7 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. 18 warnings generated. Suppressed 18 warnings (11 in non-user code, 7 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. 17 warnings generated. Suppressed 17 warnings (10 in non-user code, 7 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. 17 warnings generated. Suppressed 17 warnings (10 in non-user code, 7 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. Suppressed 14 warnings (7 in non-user code, 7 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. 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. 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. 6 warnings generated. >> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c:129:7: >> warning: Branch condition evaluates to a garbage value >> [clang-analyzer-core.uninitialized.Branch] if (!elements[i].data && elements[i].size != 0) ^ drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c:601:18: note: Assuming 'vchiq_arm_log_level' is < 7 vchiq_log_trace(vchiq_arm_log_level, ^ drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.h:60:11: note: expanded from macro 'vchiq_log_trace' do { if (cat >= VCHIQ_LOG_TRACE) \ ^~~~~~~~~~~~~~~~~~~~~~ drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c:601:2: note: Taking false branch vchiq_log_trace(vchiq_arm_log_level, ^ drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.h:60:7: note: expanded from macro 'vchiq_log_trace' do { if (cat >= VCHIQ_LOG_TRACE) \ ^ drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c:601:2: note: Loop condition is false. Exiting loop vchiq_log_trace(vchiq_arm_log_level, ^ drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.h:60:2: note: expanded from macro 'vchiq_log_trace' do { if (cat >= VCHIQ_LOG_TRACE) \ ^ drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c:608:2: note: Control jumps to 'case 1074840580:' at line 738 switch (cmd) { ^ drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c:741:3: note: Taking false branch if (copy_from_user(&args, (const void __user *)arg, ^ drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c:749:7: note: Assuming 'service' is non-null if (service && (args.count <= MAX_ELEMENTS)) { ^~~~~~~ drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c:749:7: note: Left side of '&&' is true drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c:749:19: note: Assuming field 'count' is <= MAX_ELEMENTS if (service && (args.count <= MAX_ELEMENTS)) { ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c:749:3: note: Taking true branch if (service && (args.count <= MAX_ELEMENTS)) { ^ drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c:753:8: note: Calling 'copy_from_user' if (copy_from_user(elements, args.elements, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/uaccess.h:191:2: note: Taking false branch if (likely(check_copy_size(to, n, false))) ^ include/linux/uaccess.h:193:2: note: Returning without writing to 'to->data', which participates in a condition later return n; ^ include/linux/uaccess.h:193:2: note: Returning without writing to 'to->data' drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c:753:8: note: Returning from 'copy_from_user' if (copy_from_user(elements, args.elements, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c:753:8: note: Assuming the condition is true if (copy_from_user(elements, args.elements, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c:753:4: note: Taking true branch if (copy_from_user(elements, args.elements, ^ drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c:755:11: note: Calling 'vchiq_ioc_queue_message' ret = vchiq_ioc_queue_message(args.handle, elements, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c:128:14: note: Assuming 'i' is < 'count' for (i = 0; i < count; i++) { ^~~~~~~~~ drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c:128:2: note: Loop condition is true. Entering loop body for (i = 0; i < count; i++) { ^ drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c:129:7: note: Branch condition evaluates to a garbage value if (!elements[i].data && elements[i].size != 0) ^~~~~~~~~~~~~~~~~ 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. 16 warnings generated. Suppressed 16 warnings (9 in non-user code, 7 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. 16 warnings generated. Suppressed 16 warnings (9 in non-user code, 7 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. 13 warnings generated. Suppressed 13 warnings (6 in non-user code, 7 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. 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. 16 warnings generated. Suppressed 16 warnings (9 in non-user code, 7 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. 16 warnings generated. Suppressed 16 warnings (9 in non-user code, 7 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. Suppressed 12 warnings (5 in non-user code, 7 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. 18 warnings generated. drivers/mmc/core/mmc_test.c:323:16: warning: Dereference of null pointer [clang-analyzer-core.NullDereference] __free_pages(mem->arr[mem->cnt].page, ^ drivers/mmc/core/mmc_test.c:1644:9: note: Calling 'mmc_test_area_init' return mmc_test_area_init(test, 1, 1); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vim +129 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c f05916281fd75d Ojaswin Mujoo 2021-07-21 114 f05916281fd75d Ojaswin Mujoo 2021-07-21 115 static int f05916281fd75d Ojaswin Mujoo 2021-07-21 116 vchiq_ioc_queue_message(unsigned int handle, struct vchiq_element *elements, f05916281fd75d Ojaswin Mujoo 2021-07-21 117 unsigned long count) f05916281fd75d Ojaswin Mujoo 2021-07-21 118 { f05916281fd75d Ojaswin Mujoo 2021-07-21 119 struct vchiq_io_copy_callback_context context; f05916281fd75d Ojaswin Mujoo 2021-07-21 120 enum vchiq_status status = VCHIQ_SUCCESS; f05916281fd75d Ojaswin Mujoo 2021-07-21 121 unsigned long i; f05916281fd75d Ojaswin Mujoo 2021-07-21 122 size_t total_size = 0; f05916281fd75d Ojaswin Mujoo 2021-07-21 123 f05916281fd75d Ojaswin Mujoo 2021-07-21 124 context.element = elements; f05916281fd75d Ojaswin Mujoo 2021-07-21 125 context.element_offset = 0; f05916281fd75d Ojaswin Mujoo 2021-07-21 126 context.elements_to_go = count; f05916281fd75d Ojaswin Mujoo 2021-07-21 127 f05916281fd75d Ojaswin Mujoo 2021-07-21 128 for (i = 0; i < count; i++) { f05916281fd75d Ojaswin Mujoo 2021-07-21 @129 if (!elements[i].data && elements[i].size != 0) f05916281fd75d Ojaswin Mujoo 2021-07-21 130 return -EFAULT; f05916281fd75d Ojaswin Mujoo 2021-07-21 131 f05916281fd75d Ojaswin Mujoo 2021-07-21 132 total_size += elements[i].size; f05916281fd75d Ojaswin Mujoo 2021-07-21 133 } f05916281fd75d Ojaswin Mujoo 2021-07-21 134 f05916281fd75d Ojaswin Mujoo 2021-07-21 135 status = vchiq_queue_message(handle, vchiq_ioc_copy_element_data, f05916281fd75d Ojaswin Mujoo 2021-07-21 136 &context, total_size); f05916281fd75d Ojaswin Mujoo 2021-07-21 137 f05916281fd75d Ojaswin Mujoo 2021-07-21 138 if (status == VCHIQ_ERROR) f05916281fd75d Ojaswin Mujoo 2021-07-21 139 return -EIO; f05916281fd75d Ojaswin Mujoo 2021-07-21 140 else if (status == VCHIQ_RETRY) f05916281fd75d Ojaswin Mujoo 2021-07-21 141 return -EINTR; f05916281fd75d Ojaswin Mujoo 2021-07-21 142 return 0; f05916281fd75d Ojaswin Mujoo 2021-07-21 143 } f05916281fd75d Ojaswin Mujoo 2021-07-21 144 :::::: The code at line 129 was first introduced by commit :::::: f05916281fd75db2fe32294e26c04d666c762370 staging: vchiq: Move vchiq char driver to its own file :::::: TO: Ojaswin Mujoo <ojaswi...@gmail.com> :::::: CC: Greg Kroah-Hartman <gre...@linuxfoundation.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