CC: [email protected] CC: [email protected] CC: [email protected] TO: Arnd Bergmann <[email protected]> CC: Daniel Vetter <[email protected]> CC: Kees Cook <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 83e396641110663d3c7bb25b9bc0c6a750359ecf commit: 606b102876e3741851dfb09d53f3ee57f650a52c drm: fb_helper: fix CONFIG_FB dependency date: 5 months ago :::::: branch date: 24 hours ago :::::: commit date: 5 months ago config: arm-randconfig-c002-20220210 (https://download.01.org/0day-ci/archive/20220213/[email protected]/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project e8bff9ae54a55b4dbfeb6ba55f723abbd81bf494) 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=606b102876e3741851dfb09d53f3ee57f650a52c git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 606b102876e3741851dfb09d53f3ee57f650a52c # 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 <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) ^ drivers/staging/axis-fifo/axis-fifo.c:560:3: note: Loop condition is true. Entering loop body for (i = 0; i < copy; i++) ^ drivers/staging/axis-fifo/axis-fifo.c:561:4: note: 1st function call argument is an uninitialized value iowrite32(tmp_buf[i], fifo->base_addr + ^ ~~~~~~~~~~ include/asm-generic/io.h:759:19: note: expanded from macro 'iowrite32' #define iowrite32 iowrite32 ^ Suppressed 2 warnings (2 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. 8 warnings generated. drivers/mtd/nand/raw/atmel/nand-controller.c:436:8: warning: The result of the left shift is undefined due to shifting '5' by '19', which is unrepresentable in the unsigned version of the return type 'int' [clang-analyzer-core.UndefinedBinaryOperatorResult] ATMEL_NFC_ACYCLE(nc->op.naddrs); ^ drivers/mtd/nand/raw/atmel/nand-controller.c:116:45: note: expanded from macro 'ATMEL_NFC_ACYCLE' #define ATMEL_NFC_ACYCLE(naddrs) ((naddrs) << 19) ^ drivers/mtd/nand/raw/atmel/nand-controller.c:1105:9: note: Calling 'atmel_hsmc_nand_pmecc_read_pg' return atmel_hsmc_nand_pmecc_read_pg(chip, buf, oob_required, page, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/nand/raw/atmel/nand-controller.c:1059:6: note: Assuming field 'type' is equal to ATMEL_NAND_NATIVE_RB if (nand->activecs->rb.type != ATMEL_NAND_NATIVE_RB) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/nand/raw/atmel/nand-controller.c:1059:2: note: Taking false branch if (nand->activecs->rb.type != ATMEL_NAND_NATIVE_RB) ^ drivers/mtd/nand/raw/atmel/nand-controller.c:1065:6: note: Assuming field 'writesize' is <= 512 if (mtd->writesize > 512) ^~~~~~~~~~~~~~~~~~~~ drivers/mtd/nand/raw/atmel/nand-controller.c:1065:2: note: Taking false branch if (mtd->writesize > 512) ^ drivers/mtd/nand/raw/atmel/nand-controller.c:1068:2: note: Calling 'atmel_nfc_set_op_addr' atmel_nfc_set_op_addr(chip, page, 0x0); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/nand/raw/atmel/nand-controller.c:768:6: note: 'column' is >= 0 if (column >= 0) { ^~~~~~ drivers/mtd/nand/raw/atmel/nand-controller.c:768:2: note: Taking true branch if (column >= 0) { ^ drivers/mtd/nand/raw/atmel/nand-controller.c:769:16: note: Value assigned to field 'naddrs' nc->op.addrs[nc->op.naddrs++] = column; ^~~~~~~~~~~~~~~ drivers/mtd/nand/raw/atmel/nand-controller.c:774:12: note: Field 'writesize' is <= 512 if (mtd->writesize > 512) ^ drivers/mtd/nand/raw/atmel/nand-controller.c:774:3: note: Taking false branch if (mtd->writesize > 512) ^ drivers/mtd/nand/raw/atmel/nand-controller.c:778:6: note: Assuming 'page' is < 0 if (page >= 0) { ^~~~~~~~~ drivers/mtd/nand/raw/atmel/nand-controller.c:778:2: note: Taking false branch if (page >= 0) { ^ drivers/mtd/nand/raw/atmel/nand-controller.c:1068:2: note: Returning from 'atmel_nfc_set_op_addr' atmel_nfc_set_op_addr(chip, page, 0x0); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/nand/raw/atmel/nand-controller.c:1073:6: note: 'ret' is 0 if (ret) ^~~ drivers/mtd/nand/raw/atmel/nand-controller.c:1073:2: note: Taking false branch if (ret) ^ drivers/mtd/nand/raw/atmel/nand-controller.c:1076:8: note: Calling 'atmel_nfc_exec_op' ret = atmel_nfc_exec_op(nc, false); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/nand/raw/atmel/nand-controller.c:429:14: note: Assuming 'i' is >= field 'ncmds' for (i = 0; i < nc->op.ncmds; i++) ^~~~~~~~~~~~~~~~ drivers/mtd/nand/raw/atmel/nand-controller.c:429:2: note: Loop condition is false. Execution continues on line 432 for (i = 0; i < nc->op.ncmds; i++) ^ drivers/mtd/nand/raw/atmel/nand-controller.c:432:6: note: Assuming field 'naddrs' is equal to ATMEL_NFC_MAX_ADDR_CYCLES if (nc->op.naddrs == ATMEL_NFC_MAX_ADDR_CYCLES) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/nand/raw/atmel/nand-controller.c:432:2: note: Taking true branch if (nc->op.naddrs == ATMEL_NFC_MAX_ADDR_CYCLES) ^ drivers/mtd/nand/raw/atmel/nand-controller.c:436:8: note: The result of the left shift is undefined due to shifting '5' by '19', which is unrepresentable in the unsigned version of the return type 'int' ATMEL_NFC_ACYCLE(nc->op.naddrs); ^ drivers/mtd/nand/raw/atmel/nand-controller.c:116:45: note: expanded from macro 'ATMEL_NFC_ACYCLE' #define ATMEL_NFC_ACYCLE(naddrs) ((naddrs) << 19) ~~~~~~~~ ^ drivers/mtd/nand/raw/atmel/nand-controller.c:2029:22: warning: Value stored to 'np' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct device_node *np = dev->of_node; ^~ ~~~~~~~~~~~~ drivers/mtd/nand/raw/atmel/nand-controller.c:2029:22: note: Value stored to 'np' during its initialization is never read struct device_node *np = dev->of_node; ^~ ~~~~~~~~~~~~ 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. >> drivers/gpu/drm/tegra/fb.c:126:14: warning: Assigned value is garbage or >> undefined [clang-analyzer-core.uninitialized.Assign] fb->obj[i] = &planes[i]->gem; ^ drivers/gpu/drm/tegra/fb.c:150:14: note: Assuming 'i' is >= field 'num_planes' for (i = 0; i < info->num_planes; i++) { ^~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/tegra/fb.c:150:2: note: Loop condition is false. Execution continues on line 174 for (i = 0; i < info->num_planes; i++) { ^ drivers/gpu/drm/tegra/fb.c:174:7: note: Calling 'tegra_fb_alloc' fb = tegra_fb_alloc(drm, cmd, planes, i); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/tegra/fb.c:119:7: note: Calling 'kzalloc' fb = kzalloc(sizeof(*fb), GFP_KERNEL); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/slab.h:721:9: note: Calling 'kmalloc' return kmalloc(size, flags | __GFP_ZERO); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/slab.h:579:2: note: Taking false branch if (__builtin_constant_p(size)) { ^ include/linux/slab.h:596:2: note: Returning pointer, which participates in a condition later return __kmalloc(size, flags); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/slab.h:721:9: note: Returning from 'kmalloc' return kmalloc(size, flags | __GFP_ZERO); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/slab.h:721:2: note: Returning pointer, which participates in a condition later return kmalloc(size, flags | __GFP_ZERO); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/tegra/fb.c:119:7: note: Returning from 'kzalloc' fb = kzalloc(sizeof(*fb), GFP_KERNEL); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/tegra/fb.c:120:6: note: Assuming 'fb' is non-null if (!fb) ^~~ drivers/gpu/drm/tegra/fb.c:120:2: note: Taking false branch if (!fb) ^ drivers/gpu/drm/tegra/fb.c:125:7: note: The value 0 is assigned to 'i' for (i = 0; i < fb->format->num_planes; i++) ^~~~~ drivers/gpu/drm/tegra/fb.c:125:14: note: Assuming 'i' is < field 'num_planes' for (i = 0; i < fb->format->num_planes; i++) ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/tegra/fb.c:125:2: note: Loop condition is true. Entering loop body for (i = 0; i < fb->format->num_planes; i++) ^ drivers/gpu/drm/tegra/fb.c:126:14: note: Assigned value is garbage or undefined fb->obj[i] = &planes[i]->gem; ^ ~~~~~~~~~~~~~~~ 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. 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. 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. 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. 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. 2 warnings generated. Suppressed 2 warnings (2 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. 2 warnings generated. Suppressed 2 warnings (2 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. 2 warnings generated. Suppressed 2 warnings (2 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. 2 warnings generated. Suppressed 2 warnings (2 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. 3 warnings generated. drivers/iio/adc/qcom-spmi-vadc.c:326:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = vadc_poll_wait_eoc(vadc, timeout); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/iio/adc/qcom-spmi-vadc.c:326:3: note: Value stored to 'ret' is never read ret = vadc_poll_wait_eoc(vadc, timeout); vim +126 drivers/gpu/drm/tegra/fb.c de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 109 dbc33c7d65536b drivers/gpu/drm/tegra/fb.c Daniel Stone 2018-03-30 110 static struct drm_framebuffer *tegra_fb_alloc(struct drm_device *drm, 1eb83451ba55d7 drivers/gpu/drm/tegra/fb.c Ville Syrjälä 2015-11-11 111 const struct drm_mode_fb_cmd2 *mode_cmd, de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 112 struct tegra_bo **planes, de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 113 unsigned int num_planes) de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 114 { dbc33c7d65536b drivers/gpu/drm/tegra/fb.c Daniel Stone 2018-03-30 115 struct drm_framebuffer *fb; de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 116 unsigned int i; de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 117 int err; de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 118 de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 119 fb = kzalloc(sizeof(*fb), GFP_KERNEL); de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 120 if (!fb) de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 121 return ERR_PTR(-ENOMEM); de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 122 dbc33c7d65536b drivers/gpu/drm/tegra/fb.c Daniel Stone 2018-03-30 123 drm_helper_mode_fill_fb_struct(drm, fb, mode_cmd); de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 124 dbc33c7d65536b drivers/gpu/drm/tegra/fb.c Daniel Stone 2018-03-30 125 for (i = 0; i < fb->format->num_planes; i++) dbc33c7d65536b drivers/gpu/drm/tegra/fb.c Daniel Stone 2018-03-30 @126 fb->obj[i] = &planes[i]->gem; de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 127 dbc33c7d65536b drivers/gpu/drm/tegra/fb.c Daniel Stone 2018-03-30 128 err = drm_framebuffer_init(drm, fb, &tegra_fb_funcs); de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 129 if (err < 0) { de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 130 dev_err(drm->dev, "failed to initialize framebuffer: %d\n", de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 131 err); de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 132 kfree(fb); de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 133 return ERR_PTR(err); de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 134 } de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 135 de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 136 return fb; de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 137 } de2ba664c30fcd drivers/gpu/host1x/drm/fb.c Arto Merilainen 2013-03-22 138 :::::: The code at line 126 was first introduced by commit :::::: dbc33c7d65536bce447057dc6f882decc515047d drm/tegra: tegra_fb -> drm_framebuffer :::::: TO: Daniel Stone <[email protected]> :::::: CC: Thierry Reding <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
