:::::: :::::: Manual check reason: "low confidence static check warning: drivers/media/platform/samsung/exynos4-is/fimc-core.c:803:4: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]" ::::::
CC: l...@lists.linux.dev CC: kbuild-...@lists.01.org BCC: l...@intel.com CC: linux-ker...@vger.kernel.org TO: Mauro Carvalho Chehab <mche...@kernel.org> CC: linux-me...@vger.kernel.org tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: e71e60cd74df9386c3f684c54888f2367050b831 commit: 238c84f71120f41c45301359902a912a19370f3d media: platform: rename exynos4-is/ to samsung/exynos4-is/ date: 3 months ago :::::: branch date: 21 hours ago :::::: commit date: 3 months ago config: arm-randconfig-c002-20220605 (https://download.01.org/0day-ci/archive/20220608/202206080631.vlps9jq9-...@intel.com/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 0a90b72c432d70aae035727ece4ba80ce820f381) 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 # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=238c84f71120f41c45301359902a912a19370f3d git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 238c84f71120f41c45301359902a912a19370f3d # save the config file COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm clang-analyzer If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <l...@intel.com> clang-analyzer warnings: (new ones prefixed by >>) ^ include/linux/dev_printk.h:146:2: note: expanded from macro 'dev_warn' dev_printk_index_wrap(_dev_warn, KERN_WARNING, dev, dev_fmt(fmt), ##__VA_ARGS__) ^ include/linux/dev_printk.h:109:3: note: expanded from macro 'dev_printk_index_wrap' dev_printk_index_emit(level, fmt); \ ^ include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit' printk_index_subsys_emit("%s %s: ", level, fmt) ^ include/linux/printk.h:413:2: note: expanded from macro 'printk_index_subsys_emit' __printk_index_emit(fmt, level, subsys_fmt_prefix) ^ include/linux/printk.h:370:3: note: expanded from macro '__printk_index_emit' if (__builtin_constant_p(_fmt) && __builtin_constant_p(_level)) { \ ^ drivers/usb/misc/ftdi-elan.c:196:2: note: '?' condition is true dev_warn(&ftdi->udev->dev, "FREEING ftdi=%p\n", ftdi); ^ include/linux/dev_printk.h:146:2: note: expanded from macro 'dev_warn' dev_printk_index_wrap(_dev_warn, KERN_WARNING, dev, dev_fmt(fmt), ##__VA_ARGS__) ^ include/linux/dev_printk.h:109:3: note: expanded from macro 'dev_printk_index_wrap' dev_printk_index_emit(level, fmt); \ ^ include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit' printk_index_subsys_emit("%s %s: ", level, fmt) ^ include/linux/printk.h:413:2: note: expanded from macro 'printk_index_subsys_emit' __printk_index_emit(fmt, level, subsys_fmt_prefix) ^ include/linux/printk.h:379:12: note: expanded from macro '__printk_index_emit' .fmt = __builtin_constant_p(_fmt) ? (_fmt) : NULL, \ ^ drivers/usb/misc/ftdi-elan.c:196:2: note: '?' condition is true dev_warn(&ftdi->udev->dev, "FREEING ftdi=%p\n", ftdi); ^ include/linux/dev_printk.h:146:2: note: expanded from macro 'dev_warn' dev_printk_index_wrap(_dev_warn, KERN_WARNING, dev, dev_fmt(fmt), ##__VA_ARGS__) ^ include/linux/dev_printk.h:109:3: note: expanded from macro 'dev_printk_index_wrap' dev_printk_index_emit(level, fmt); \ ^ include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit' printk_index_subsys_emit("%s %s: ", level, fmt) ^ include/linux/printk.h:413:2: note: expanded from macro 'printk_index_subsys_emit' __printk_index_emit(fmt, level, subsys_fmt_prefix) ^ include/linux/printk.h:383:14: note: expanded from macro '__printk_index_emit' .level = __builtin_constant_p(_level) ? (_level) : NULL, \ ^ drivers/usb/misc/ftdi-elan.c:196:2: note: Loop condition is false. Exiting loop dev_warn(&ftdi->udev->dev, "FREEING ftdi=%p\n", ftdi); ^ include/linux/dev_printk.h:146:2: note: expanded from macro 'dev_warn' dev_printk_index_wrap(_dev_warn, KERN_WARNING, dev, dev_fmt(fmt), ##__VA_ARGS__) ^ include/linux/dev_printk.h:109:3: note: expanded from macro 'dev_printk_index_wrap' dev_printk_index_emit(level, fmt); \ ^ include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit' printk_index_subsys_emit("%s %s: ", level, fmt) ^ include/linux/printk.h:413:2: note: expanded from macro 'printk_index_subsys_emit' __printk_index_emit(fmt, level, subsys_fmt_prefix) ^ include/linux/printk.h:369:2: note: expanded from macro '__printk_index_emit' do { \ ^ drivers/usb/misc/ftdi-elan.c:205:2: note: Memory is released kfree(ftdi); ^~~~~~~~~~~ include/linux/kref.h:65:3: note: Returning; memory was released release(kref); ^~~~~~~~~~~~~ drivers/usb/misc/ftdi-elan.c:256:3: note: Returning; memory was released kref_put(&ftdi->kref, ftdi_elan_delete); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/usb/misc/ftdi-elan.c:2782:3: note: Returning; memory was released via 1st parameter ftdi_command_cancel_work(ftdi); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/usb/misc/ftdi-elan.c:2783:3: note: Use of memory after it is freed ftdi_response_cancel_work(ftdi); ^ ~~~~ Suppressed 2 warnings (2 with check filters). 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. drivers/pinctrl/mediatek/pinctrl-moore.c:183:4: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores] err = -ENOTSUPP; ^ ~~~~~~~~~ drivers/pinctrl/mediatek/pinctrl-moore.c:183:4: note: Value stored to 'err' is never read err = -ENOTSUPP; ^ ~~~~~~~~~ 2 warnings generated. >> drivers/media/platform/samsung/exynos4-is/fimc-core.c:803:4: warning: Value >> stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = PTR_ERR(fimc->clock[i]); ^ ~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-core.c:803:4: note: Value stored to 'ret' is never read ret = PTR_ERR(fimc->clock[i]); ^ ~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 1 warnings (1 with check filters). 1 warning generated. Suppressed 1 warnings (1 with check filters). 1 warning generated. drivers/hwmon/lm75.h:30:29: warning: The result of the left shift is undefined because the left operand is negative [clang-analyzer-core.UndefinedBinaryOperatorResult] return (u16)((ntemp / 500) << 7); ^ drivers/hwmon/w83627ehf.c:1608:6: note: Assuming 'type' is not equal to hwmon_in if (type == hwmon_in && attr == hwmon_in_min) ^~~~~~~~~~~~~~~~ drivers/hwmon/w83627ehf.c:1608:23: note: Left side of '&&' is false if (type == hwmon_in && attr == hwmon_in_min) ^ drivers/hwmon/w83627ehf.c:1610:6: note: 'type' is not equal to hwmon_in if (type == hwmon_in && attr == hwmon_in_max) ^~~~ drivers/hwmon/w83627ehf.c:1610:23: note: Left side of '&&' is false if (type == hwmon_in && attr == hwmon_in_max) ^ drivers/hwmon/w83627ehf.c:1613:6: note: Assuming 'type' is not equal to hwmon_fan if (type == hwmon_fan && attr == hwmon_fan_min) ^~~~~~~~~~~~~~~~~ drivers/hwmon/w83627ehf.c:1613:24: note: Left side of '&&' is false if (type == hwmon_fan && attr == hwmon_fan_min) ^ drivers/hwmon/w83627ehf.c:1616:6: note: Assuming 'type' is equal to hwmon_temp if (type == hwmon_temp && attr == hwmon_temp_max) ^~~~~~~~~~~~~~~~~~ drivers/hwmon/w83627ehf.c:1616:6: note: Left side of '&&' is true drivers/hwmon/w83627ehf.c:1616:28: note: Assuming 'attr' is equal to hwmon_temp_max if (type == hwmon_temp && attr == hwmon_temp_max) ^~~~~~~~~~~~~~~~~~~~~~ drivers/hwmon/w83627ehf.c:1616:2: note: Taking true branch if (type == hwmon_temp && attr == hwmon_temp_max) ^ drivers/hwmon/w83627ehf.c:1617:10: note: Calling 'store_temp_max' return store_temp_max(dev, data, channel, val); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/hwmon/w83627ehf.c:799:1: note: Calling 'LM75_TEMP_TO_REG' store_temp_reg(reg_temp_over, temp_max); ^ drivers/hwmon/w83627ehf.c:794:23: note: expanded from macro 'store_temp_reg' data->reg[channel] = LM75_TEMP_TO_REG(val); \ ^~~~~~~~~~~~~~~~~~~~~ drivers/hwmon/lm75.h:27:14: note: Assuming '__UNIQUE_ID___x165' is <= '__UNIQUE_ID___y166' int ntemp = clamp_val(temp, LM75_TEMP_MIN, LM75_TEMP_MAX); ^ include/linux/minmax.h:137:32: note: expanded from macro 'clamp_val' #define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:124:48: note: expanded from macro 'clamp_t' #define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi) ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:112:27: note: expanded from macro 'max_t' #define max_t(type, x, y) __careful_cmp((type)(x), (type)(y), >) ^ note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/minmax.h:104:48: note: expanded from macro 'min_t' #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <) ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ include/linux/minmax.h:38:14: note: expanded from macro '__careful_cmp' __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op)) ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:31:25: note: expanded from macro '__cmp_once' typeof(x) unique_x = (x); \ ^ drivers/hwmon/lm75.h:27:14: note: '?' condition is false int ntemp = clamp_val(temp, LM75_TEMP_MIN, LM75_TEMP_MAX); ^ include/linux/minmax.h:137:32: note: expanded from macro 'clamp_val' #define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi) ^ include/linux/minmax.h:124:48: note: expanded from macro 'clamp_t' #define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi) ^ include/linux/minmax.h:112:27: note: expanded from macro 'max_t' #define max_t(type, x, y) __careful_cmp((type)(x), (type)(y), >) ^ include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp' __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op)) ^ include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once' __cmp(unique_x, unique_y, op); }) ^ include/linux/minmax.h:28:26: note: expanded from macro '__cmp' #define __cmp(x, y, op) ((x) op (y) ? (x) : (y)) ^ drivers/hwmon/lm75.h:27:14: note: '__UNIQUE_ID___x167' is < '__UNIQUE_ID___y168' int ntemp = clamp_val(temp, LM75_TEMP_MIN, LM75_TEMP_MAX); ^ include/linux/minmax.h:137:32: note: expanded from macro 'clamp_val' #define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:124:36: note: expanded from macro 'clamp_t' #define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi) -- ^ lib/vsprintf.c:933:4: note: Assigned value is garbage or undefined s = array[--i]; ^ ~~~~~~~~~~ lib/vsprintf.c:1350:9: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign] *p++ = temp[digits]; ^ lib/vsprintf.c:3061:2: note: Loop condition is true. Entering loop body while (*fmt) { ^ lib/vsprintf.c:3066:3: note: Control jumps to 'case FORMAT_TYPE_PTR:' at line 3101 switch (spec.type) { ^ lib/vsprintf.c:3103:4: note: Control jumps to the 'default' case at line 3112 switch (*fmt) { ^ lib/vsprintf.c:3113:9: note: Assuming the condition is false if (!isalnum(*fmt)) { ^~~~~~~~~~~~~~ lib/vsprintf.c:3113:5: note: Taking false branch if (!isalnum(*fmt)) { ^ lib/vsprintf.c:3117:11: note: Calling 'pointer' str = pointer(fmt, str, end, va_arg(args, void *), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/vsprintf.c:2386:2: note: Control jumps to 'case 105:' at line 2415 switch (*fmt) { ^ lib/vsprintf.c:2419:10: note: Calling 'ip_addr_string' return ip_addr_string(buf, end, ptr, spec, fmt); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/vsprintf.c:1587:2: note: Taking false branch if (check_pointer(&buf, end, ptr, spec)) ^ lib/vsprintf.c:1590:2: note: Control jumps to 'case 52:' at line 1593 switch (fmt[1]) { ^ lib/vsprintf.c:1594:10: note: Calling 'ip4_addr_string' return ip4_addr_string(buf, end, ptr, spec, fmt); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/vsprintf.c:1479:2: note: Calling 'ip4_string' ip4_string(ip4_addr, addr, fmt); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/vsprintf.c:1318:2: note: Control jumps to the 'default' case at line 1334 switch (fmt[2]) { ^ lib/vsprintf.c:1337:3: note: Execution continues on line 1339 break; ^ lib/vsprintf.c:1339:2: note: Loop condition is true. Entering loop body for (i = 0; i < 4; i++) { ^ lib/vsprintf.c:1341:16: note: Calling 'put_dec_trunc8' int digits = put_dec_trunc8(temp, addr[index]) - temp; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/vsprintf.c:219:6: note: Assuming 'r' is < 100 if (r < 100) ^~~~~~~ lib/vsprintf.c:219:2: note: Taking true branch if (r < 100) ^ lib/vsprintf.c:220:3: note: Control jumps to line 249 goto out_r; ^ lib/vsprintf.c:250:9: note: Assuming 'r' is >= 10 buf += r < 10 ? 1 : 2; ^~~~~~ lib/vsprintf.c:250:9: note: '?' condition is false lib/vsprintf.c:1341:16: note: Returning from 'put_dec_trunc8' int digits = put_dec_trunc8(temp, addr[index]) - temp; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/vsprintf.c:1342:7: note: Assuming 'leading_zeros' is false if (leading_zeros) { ^~~~~~~~~~~~~ lib/vsprintf.c:1342:3: note: Taking false branch if (leading_zeros) { ^ lib/vsprintf.c:1349:10: note: The value 1 is assigned to 'digits' while (digits--) ^~~~~~~~ lib/vsprintf.c:1349:3: note: Loop condition is true. Entering loop body while (digits--) ^ lib/vsprintf.c:1350:9: note: Assigned value is garbage or undefined *p++ = temp[digits]; ^ ~~~~~~~~~~~~ lib/vsprintf.c:1413:4: warning: Value stored to 'needcolon' is never read [clang-analyzer-deadcode.DeadStores] needcolon = false; ^ ~~~~~ lib/vsprintf.c:1413:4: note: Value stored to 'needcolon' is never read needcolon = false; ^ ~~~~~ lib/vsprintf.c:1781:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcpy(p, *fourcc & BIT(31) ? " big-endian" : " little-endian"); ^~~~~~ lib/vsprintf.c:1781:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 strcpy(p, *fourcc & BIT(31) ? " big-endian" : " little-endian"); ^~~~~~ Suppressed 1 warnings (1 with check filters). 2 warnings generated. >> drivers/media/platform/samsung/exynos4-is/fimc-m2m.c:467:20: warning: >> Division by zero [clang-analyzer-core.DivideZero] halign, 64/(ALIGN(depth, 8))); ^ drivers/media/platform/samsung/exynos4-is/fimc-m2m.c:493:8: note: Calling 'fimc_m2m_try_selection' ret = fimc_m2m_try_selection(ctx, s); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-m2m.c:435:6: note: Assuming field 'top' is >= 0 if (s->r.top < 0 || s->r.left < 0) { ^~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-m2m.c:435:6: note: Left side of '||' is false drivers/media/platform/samsung/exynos4-is/fimc-m2m.c:435:22: note: Assuming field 'left' is >= 0 if (s->r.top < 0 || s->r.left < 0) { ^~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-m2m.c:435:2: note: Taking false branch if (s->r.top < 0 || s->r.left < 0) { ^ drivers/media/platform/samsung/exynos4-is/fimc-m2m.c:440:6: note: Assuming field 'type' is equal to V4L2_BUF_TYPE_VIDEO_CAPTURE if (s->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-m2m.c:440:2: note: Taking true branch if (s->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) { ^ drivers/media/platform/samsung/exynos4-is/fimc-m2m.c:442:7: note: Assuming field 'target' is equal to V4L2_SEL_TGT_COMPOSE if (s->target != V4L2_SEL_TGT_COMPOSE) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-m2m.c:442:3: note: Taking false branch if (s->target != V4L2_SEL_TGT_COMPOSE) ^ drivers/media/platform/samsung/exynos4-is/fimc-m2m.c:452:13: note: '?' condition is false min_size = (f == &ctx->s_frame) ? ^ drivers/media/platform/samsung/exynos4-is/fimc-m2m.c:456:6: note: Assuming field 'min_vsize_align' is not equal to 1 if (fimc->variant->min_vsize_align == 1) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-m2m.c:456:2: note: Taking false branch if (fimc->variant->min_vsize_align == 1) ^ drivers/media/platform/samsung/exynos4-is/fimc-m2m.c:461:14: note: Assuming 'i' is >= field 'memplanes' for (i = 0; i < f->fmt->memplanes; i++) ^~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-m2m.c:461:2: note: Loop condition is false. Execution continues on line 464 for (i = 0; i < f->fmt->memplanes; i++) ^ drivers/media/platform/samsung/exynos4-is/fimc-m2m.c:467:20: note: Division by zero halign, 64/(ALIGN(depth, 8))); ~~^~~~~~~~~~~~~~~~~~ Suppressed 1 warnings (1 with check filters). 5 warnings generated. >> drivers/media/platform/samsung/exynos4-is/fimc-capture.c:670:16: warning: >> Division by zero [clang-analyzer-core.DivideZero] align_sz = 64/ALIGN(depth, 8); ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1643:6: note: Assuming field 'pad' is not equal to FIMC_SD_PAD_SOURCE if (sel->pad == FIMC_SD_PAD_SOURCE) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1643:2: note: Taking false branch if (sel->pad == FIMC_SD_PAD_SOURCE) ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1647:2: note: Calling 'fimc_capture_try_selection' fimc_capture_try_selection(ctx, r, V4L2_SEL_TGT_CROP); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:643:16: note: Assuming field 'rotation' is equal to 90 bool rotate = ctx->rotation == 90 || ctx->rotation == 270; ^~~~~~~~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:643:36: note: Left side of '||' is true bool rotate = ctx->rotation == 90 || ctx->rotation == 270; ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:653:6: note: Assuming the condition is true if (fimc_fmt_is_user_defined(ctx->d_frame.fmt->color)) { ^ drivers/media/platform/samsung/exynos4-is/fimc-core.h:112:39: note: expanded from macro 'fimc_fmt_is_user_defined' #define fimc_fmt_is_user_defined(x) (!!((x) & 0x180)) ^~~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:653:2: note: Taking false branch if (fimc_fmt_is_user_defined(ctx->d_frame.fmt->color)) { ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:659:6: note: 'target' is not equal to V4L2_SEL_TGT_COMPOSE if (target == V4L2_SEL_TGT_COMPOSE) { ^~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:659:2: note: Taking false branch if (target == V4L2_SEL_TGT_COMPOSE) { ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:670:16: note: Division by zero align_sz = 64/ALIGN(depth, 8); ~~^~~~~~~~~~~~~~~~ >> drivers/media/platform/samsung/exynos4-is/fimc-capture.c:825:3: warning: >> Value stored to 'ffmt' is never read [clang-analyzer-deadcode.DeadStores] ffmt = fimc_capture_try_format(ctx, &tfmt->width, &tfmt->height, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:825:3: note: Value stored to 'ffmt' is never read ffmt = fimc_capture_try_format(ctx, &tfmt->width, &tfmt->height, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/media/platform/samsung/exynos4-is/fimc-capture.c:862:22: warning: >> Assigned value is garbage or undefined >> [clang-analyzer-core.uninitialized.Assign] fd.entry[i].length = plane_fmt[i].sizeimage; ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1184:2: note: Taking false branch if (fimc_capture_active(fimc)) ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1188:6: note: Assuming 'ret' is >= 0 if (ret < 0) ^~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1188:2: note: Taking false branch if (ret < 0) ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1192:6: note: Assuming 'sd' is non-null if (sd) ^~ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1192:2: note: Taking true branch if (sd) ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1195:6: note: Assuming 'si' is not equal to NULL if (si == NULL) { ^~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1195:2: note: Taking false branch if (si == NULL) { ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1205:6: note: Assuming the condition is false if (vc->input == GRP_ID_FIMC_IS) ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1205:2: note: Taking false branch if (vc->input == GRP_ID_FIMC_IS) ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1208:6: note: Assuming field 'user_subdev_api' is true if (vc->user_subdev_api) { ^~~~~~~~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1208:2: note: Taking true branch if (vc->user_subdev_api) { ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1209:9: note: Calling 'fimc_pipeline_validate' ret = fimc_pipeline_validate(fimc); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1105:2: note: Loop condition is true. Entering loop body while (1) { ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1113:15: note: Assuming 'i' is < field 'num_pads' for (i = 0; i < sd->entity.num_pads; i++) { ^~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1113:3: note: Loop condition is true. Entering loop body for (i = 0; i < sd->entity.num_pads; i++) { ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1116:8: note: Assuming the condition is true if (p->flags & MEDIA_PAD_FL_SINK) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1116:4: note: Taking true branch if (p->flags & MEDIA_PAD_FL_SINK) { ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1119:9: note: Assuming 'src_pad' is non-null if (src_pad) ^~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1119:5: note: Taking true branch if (src_pad) ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1120:6: note: Execution continues on line 1124 break; ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1124:8: note: 'src_pad' is non-null if (!src_pad || !is_media_entity_v4l2_subdev(src_pad->entity)) ^~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1124:7: note: Left side of '||' is false if (!src_pad || !is_media_entity_v4l2_subdev(src_pad->entity)) ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1124:3: note: Taking false branch if (!src_pad || !is_media_entity_v4l2_subdev(src_pad->entity)) ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1128:3: note: Taking true branch if (sd == &vc->subdev) { ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1132:27: note: Assuming field 'fmt' is non-null sink_fmt.format.code = ff->fmt ? ff->fmt->mbus_code : 0; ^~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1132:27: note: '?' condition is true drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1142:8: note: '__me_sd_ent' is non-null sd = media_entity_to_v4l2_subdev(src_pad->entity); ^ include/media/v4l2-subdev.h:932:2: note: expanded from macro 'media_entity_to_v4l2_subdev' __me_sd_ent ? \ ^~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1142:8: note: '?' condition is true sd = media_entity_to_v4l2_subdev(src_pad->entity); ^ include/media/v4l2-subdev.h:932:2: note: expanded from macro 'media_entity_to_v4l2_subdev' __me_sd_ent ? \ ^ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1145:9: note: '__sd' is non-null ret = v4l2_subdev_call(sd, pad, get_fmt, NULL, &src_fmt); ^ include/media/v4l2-subdev.h:1170:8: note: expanded from macro 'v4l2_subdev_call' if (!__sd) \ ^~~~ drivers/media/platform/samsung/exynos4-is/fimc-capture.c:1145:9: note: Taking false branch ret = v4l2_subdev_call(sd, pad, get_fmt, NULL, &src_fmt); ^ include/media/v4l2-subdev.h:1170:3: note: expanded from macro 'v4l2_subdev_call' -- ^~~~~ ~~~~~~~~~~~~ 2 warnings generated. fs/affs/namei.c:22:34: warning: Although the value stored to 'ch' is used in the enclosing expression, the value is never actually read from 'ch' [clang-analyzer-deadcode.DeadStores] return ch >= 'a' && ch <= 'z' ? ch -= ('a' - 'A') : ch; ^ ~~~~~~~~~~~ fs/affs/namei.c:22:34: note: Although the value stored to 'ch' is used in the enclosing expression, the value is never actually read from 'ch' return ch >= 'a' && ch <= 'z' ? ch -= ('a' - 'A') : ch; ^ ~~~~~~~~~~~ fs/affs/namei.c:489:2: warning: Value stored to 'retval' is never read [clang-analyzer-deadcode.DeadStores] retval = affs_insert_hash(new_dir, bh_old); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/affs/namei.c:489:2: note: Value stored to 'retval' is never read retval = affs_insert_hash(new_dir, bh_old); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. sound/usb/midi.c:2354:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcpy(rmidi->name, umidi->card->shortname); ^~~~~~ sound/usb/midi.c:2354:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 strcpy(rmidi->name, umidi->card->shortname); ^~~~~~ 2 warnings generated. sound/usb/misc/ua101.c:1250:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcpy(card->shortname, name); ^~~~~~ sound/usb/misc/ua101.c:1250:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 strcpy(card->shortname, name); ^~~~~~ sound/usb/misc/ua101.c:1275:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcpy(ua->pcm->name, name); ^~~~~~ sound/usb/misc/ua101.c:1275:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 strcpy(ua->pcm->name, name); ^~~~~~ 1 warning generated. Suppressed 1 warnings (1 with check filters). 1 warning generated. Suppressed 1 warnings (1 with check filters). 1 warning generated. drivers/gpu/drm/drm_file.c:587:30: warning: Use of memory after it is freed [clang-analyzer-unix.Malloc] file_priv->event_space += e->event->length; ^~~~~~~~ drivers/gpu/drm/drm_file.c:577:6: note: Assuming 'ret' is 0 if (ret) ^~~ drivers/gpu/drm/drm_file.c:577:2: note: Taking false branch if (ret) ^ drivers/gpu/drm/drm_file.c:580:2: note: Loop condition is true. Entering loop body for (;;) { ^ drivers/gpu/drm/drm_file.c:584:7: note: Assuming the condition is true if (!list_empty(&file_priv->event_list)) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/drm_file.c:584:3: note: Taking true branch if (!list_empty(&file_priv->event_list)) { ^ drivers/gpu/drm/drm_file.c:592:7: note: 'e' is not equal to NULL if (e == NULL) { ^ drivers/gpu/drm/drm_file.c:592:3: note: Taking false branch if (e == NULL) { ^ drivers/gpu/drm/drm_file.c:611:8: note: Assuming the condition is false if (length > count - ret) { ^~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/drm_file.c:611:4: note: Taking false branch if (length > count - ret) { ^ drivers/gpu/drm/drm_file.c:622:8: note: Assuming the condition is false if (copy_to_user(buffer + ret, e->event, length)) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/drm_file.c:622:4: note: Taking false branch if (copy_to_user(buffer + ret, e->event, length)) { ^ drivers/gpu/drm/drm_file.c:629:4: note: Memory is released kfree(e); ^~~~~~~~ drivers/gpu/drm/drm_file.c:580:2: note: Loop condition is true. Entering loop body for (;;) { ^ drivers/gpu/drm/drm_file.c:584:7: note: Assuming the condition is true if (!list_empty(&file_priv->event_list)) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/drm_file.c:584:3: note: Taking true branch if (!list_empty(&file_priv->event_list)) { ^ drivers/gpu/drm/drm_file.c:587:30: note: Use of memory after it is freed file_priv->event_space += e->event->length; ^~~~~~~~ 1 warning generated. sound/core/seq/seq_midi.c:348:4: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcpy(port->name, info->subname); ^~~~~~ sound/core/seq/seq_midi.c:348:4: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 strcpy(port->name, info->subname); ^~~~~~ 2 warnings generated. Suppressed 2 warnings (2 with check filters). 4 warnings generated. >> drivers/media/platform/samsung/exynos4-is/media-dev.c:1018:3: warning: Value >> stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = __fimc_md_create_fimc_sink_links(fmd, source, sensor, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/media-dev.c:1018:3: note: Value stored to 'ret' is never read ret = __fimc_md_create_fimc_sink_links(fmd, source, sensor, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/media-dev.c:1031:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = __fimc_md_create_fimc_sink_links(fmd, source, sensor, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/media-dev.c:1031:3: note: Value stored to 'ret' is never read ret = __fimc_md_create_fimc_sink_links(fmd, source, sensor, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/list.h:137:13: warning: Use of memory after it is freed [clang-analyzer-unix.Malloc] __list_del(entry->prev, entry->next); ^ drivers/media/platform/samsung/exynos4-is/media-dev.c:1541:6: note: Assuming 'fmd' is non-null if (!fmd) ^~~~ drivers/media/platform/samsung/exynos4-is/media-dev.c:1541:2: note: Taking false branch if (!fmd) ^ drivers/media/platform/samsung/exynos4-is/media-dev.c:1551:2: note: Calling 'fimc_md_pipelines_free' fimc_md_pipelines_free(fmd); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/samsung/exynos4-is/media-dev.c:389:2: note: Loop condition is true. Entering loop body while (!list_empty(&fmd->pipelines)) { ^ drivers/media/platform/samsung/exynos4-is/media-dev.c:394:3: note: Memory is released kfree(p); ^~~~~~~~ drivers/media/platform/samsung/exynos4-is/media-dev.c:389:2: note: Loop condition is true. Entering loop body while (!list_empty(&fmd->pipelines)) { ^ drivers/media/platform/samsung/exynos4-is/media-dev.c:393:3: note: Calling 'list_del' list_del(&p->list); ^~~~~~~~~~~~~~~~~~ include/linux/list.h:148:2: note: Calling '__list_del_entry' __list_del_entry(entry); ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/list.h:134:2: note: Taking false branch if (!__list_del_entry_valid(entry)) ^ include/linux/list.h:137:13: note: Use of memory after it is freed __list_del(entry->prev, entry->next); ^~~~~~~~~~~ Suppressed 1 warnings (1 with check filters). 1 warning generated. Suppressed 1 warnings (1 with check filters). 1 warning generated. fs/btrfs/verity.c:134:4: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = 0; ^ ~ fs/btrfs/verity.c:134:4: note: Value stored to 'ret' is never read ret = 0; ^ ~ 1 warning generated. drivers/of/device.c:59:29: warning: Value stored to 'of_node' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct device_node *node, *of_node = dev->of_node; ^~~~~~~ ~~~~~~~~~~~~ drivers/of/device.c:59:29: note: Value stored to 'of_node' during its initialization is never read struct device_node *node, *of_node = dev->of_node; ^~~~~~~ ~~~~~~~~~~~~ 2 warnings generated. drivers/of/property.c:920:19: warning: Access to field 'full_name' results in a dereference of a null pointer [clang-analyzer-core.NullDereference] return kbasename(to_of_node(fwnode)->full_name); ^ include/linux/of.h:161:2: note: expanded from macro 'to_of_node' ({ \ ^ drivers/of/property.c:920:19: note: '?' condition is false return kbasename(to_of_node(fwnode)->full_name); ^ include/linux/of.h:164:3: note: expanded from macro 'to_of_node' is_of_node(__to_of_node_fwnode) ? \ ^ drivers/of/property.c:920:19: note: Access to field 'full_name' results in a dereference of a null pointer return kbasename(to_of_node(fwnode)->full_name); ^ include/linux/of.h:161:2: note: expanded from macro 'to_of_node' ({ \ ^ drivers/of/property.c:926:7: warning: Access to field 'parent' results in a dereference of a null pointer [clang-analyzer-core.NullDereference] if (!to_of_node(fwnode)->parent) ^ include/linux/of.h:161:2: note: expanded from macro 'to_of_node' ({ \ ^ drivers/of/property.c:926:7: note: '?' condition is false if (!to_of_node(fwnode)->parent) ^ include/linux/of.h:164:3: note: expanded from macro 'to_of_node' is_of_node(__to_of_node_fwnode) ? \ ^ drivers/of/property.c:926:7: note: Access to field 'parent' results in a dereference of a null pointer if (!to_of_node(fwnode)->parent) ^ include/linux/of.h:161:2: note: expanded from macro 'to_of_node' ({ \ ^ 1 warning generated. Suppressed 1 warnings (1 with check filters). vim +/ret +803 drivers/media/platform/samsung/exynos4-is/fimc-core.c 5fd8f7388c9a86 drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2010-08-03 792 5fd8f7388c9a86 drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2010-08-03 793 static int fimc_clk_get(struct fimc_dev *fimc) 5fd8f7388c9a86 drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2010-08-03 794 { bd7d8888e99d67 drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2012-01-30 795 int i, ret; bd7d8888e99d67 drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2012-01-30 796 b71b56b264ae27 drivers/media/platform/s5p-fimc/fimc-core.c Sylwester Nawrocki 2013-01-29 797 for (i = 0; i < MAX_FIMC_CLOCKS; i++) b71b56b264ae27 drivers/media/platform/s5p-fimc/fimc-core.c Sylwester Nawrocki 2013-01-29 798 fimc->clock[i] = ERR_PTR(-EINVAL); b71b56b264ae27 drivers/media/platform/s5p-fimc/fimc-core.c Sylwester Nawrocki 2013-01-29 799 6ec0163b7952ad drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2012-03-17 800 for (i = 0; i < MAX_FIMC_CLOCKS; i++) { a25be18dfb6e1b drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2010-12-27 801 fimc->clock[i] = clk_get(&fimc->pdev->dev, fimc_clocks[i]); b71b56b264ae27 drivers/media/platform/s5p-fimc/fimc-core.c Sylwester Nawrocki 2013-01-29 802 if (IS_ERR(fimc->clock[i])) { b71b56b264ae27 drivers/media/platform/s5p-fimc/fimc-core.c Sylwester Nawrocki 2013-01-29 @803 ret = PTR_ERR(fimc->clock[i]); bd7d8888e99d67 drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2012-01-30 804 goto err; b71b56b264ae27 drivers/media/platform/s5p-fimc/fimc-core.c Sylwester Nawrocki 2013-01-29 805 } bd7d8888e99d67 drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2012-01-30 806 ret = clk_prepare(fimc->clock[i]); bd7d8888e99d67 drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2012-01-30 807 if (ret < 0) { bd7d8888e99d67 drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2012-01-30 808 clk_put(fimc->clock[i]); b71b56b264ae27 drivers/media/platform/s5p-fimc/fimc-core.c Sylwester Nawrocki 2013-01-29 809 fimc->clock[i] = ERR_PTR(-EINVAL); bd7d8888e99d67 drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2012-01-30 810 goto err; bd7d8888e99d67 drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2012-01-30 811 } 5fd8f7388c9a86 drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2010-08-03 812 } e9e21083ef9361 drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2011-09-02 813 return 0; bd7d8888e99d67 drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2012-01-30 814 err: bd7d8888e99d67 drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2012-01-30 815 fimc_clk_put(fimc); bd7d8888e99d67 drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2012-01-30 816 dev_err(&fimc->pdev->dev, "failed to get clock: %s\n", bd7d8888e99d67 drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2012-01-30 817 fimc_clocks[i]); bd7d8888e99d67 drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2012-01-30 818 return -ENXIO; e9e21083ef9361 drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2011-09-02 819 } e9e21083ef9361 drivers/media/video/s5p-fimc/fimc-core.c Sylwester Nawrocki 2011-09-02 820 :::::: The code at line 803 was first introduced by commit :::::: b71b56b264ae27f32784973d15bfdfbc7df6d579 [media] s5p-fimc: Check return value of clk_enable/clk_set_rate :::::: TO: Sylwester Nawrocki <s.nawro...@samsung.com> :::::: CC: Mauro Carvalho Chehab <mche...@redhat.com> -- 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