CC: [email protected] CC: [email protected] In-Reply-To: <[email protected]> References: <[email protected]> TO: Sui Jingfeng <[email protected]>
Hi Sui, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on drm/drm-next] [also build test WARNING on robh/for-next drm-intel/for-linux-next drm-tip/drm-tip v5.17-rc2 next-20220204] [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/Sui-Jingfeng/drm-lsdc-add-drm-driver-for-loongson-display-controller/20220203-162953 base: git://anongit.freedesktop.org/drm/drm drm-next :::::: branch date: 3 days ago :::::: commit date: 3 days ago config: riscv-randconfig-c006-20220205 (https://download.01.org/0day-ci/archive/20220207/[email protected]/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project dee058c670593b999fec19c458dbbd882ad9de56) 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://github.com/0day-ci/linux/commit/983916ec4a8df390a947a7f539dbc99f5d511e26 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Sui-Jingfeng/drm-lsdc-add-drm-driver-for-loongson-display-controller/20220203-162953 git checkout 983916ec4a8df390a947a7f539dbc99f5d511e26 # 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 <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) 9 warnings generated. Suppressed 9 warnings (2 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. 9 warnings generated. Suppressed 9 warnings (2 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. 9 warnings generated. Suppressed 9 warnings (2 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. 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. 9 warnings generated. Suppressed 9 warnings (2 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. 9 warnings generated. Suppressed 9 warnings (2 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. 9 warnings generated. Suppressed 9 warnings (2 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. 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. 9 warnings generated. Suppressed 9 warnings (2 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. 9 warnings generated. Suppressed 9 warnings (2 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. 9 warnings generated. Suppressed 9 warnings (2 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. 3 warnings generated. fs/kernfs/dir.c:672:6: warning: Value stored to 'gen' during its initialization is never read [clang-analyzer-deadcode.DeadStores] u32 gen = kernfs_id_gen(id); ^~~ ~~~~~~~~~~~~~~~~~ fs/kernfs/dir.c:672:6: note: Value stored to 'gen' during its initialization is never read u32 gen = kernfs_id_gen(id); ^~~ ~~~~~~~~~~~~~~~~~ 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. 10 warnings generated. Suppressed 10 warnings (2 in non-user code, 8 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. drivers/gpu/drm/lsdc/lsdc_crtc.c:123:33: warning: The left operand of '&' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult] priv_crtc_state->pix_fmt = val & CFG_PIX_FMT_MASK; ~~~ ^ drivers/gpu/drm/lsdc/lsdc_crtc.c:97:2: note: 'val' declared without an initial value u32 val; ^~~~~~~ drivers/gpu/drm/lsdc/lsdc_crtc.c:104:6: note: Assuming 'index' is not equal to 0 if (index == 0) { ^~~~~~~~~~ drivers/gpu/drm/lsdc/lsdc_crtc.c:104:2: note: Taking false branch if (index == 0) { ^ drivers/gpu/drm/lsdc/lsdc_crtc.c:107:13: note: Assuming 'index' is not equal to 1 } else if (index == 1) { ^~~~~~~~~~ drivers/gpu/drm/lsdc/lsdc_crtc.c:107:9: note: Taking false branch } else if (index == 1) { ^ drivers/gpu/drm/lsdc/lsdc_crtc.c:113:6: note: Assuming field 'state' is null if (crtc->state) { ^~~~~~~~~~~ drivers/gpu/drm/lsdc/lsdc_crtc.c:113:2: note: Taking false branch if (crtc->state) { ^ drivers/gpu/drm/lsdc/lsdc_crtc.c:119:20: note: Calling 'kzalloc' priv_crtc_state = kzalloc(sizeof(*priv_crtc_state), GFP_KERNEL); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/slab.h:715:9: note: Calling 'kmalloc' return kmalloc(size, flags | __GFP_ZERO); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/slab.h:569:2: note: Taking false branch if (__builtin_constant_p(size)) { ^ include/linux/slab.h:586:2: note: Returning pointer, which participates in a condition later return __kmalloc(size, flags); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/slab.h:715:9: note: Returning from 'kmalloc' return kmalloc(size, flags | __GFP_ZERO); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/slab.h:715:2: note: Returning pointer, which participates in a condition later return kmalloc(size, flags | __GFP_ZERO); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/lsdc/lsdc_crtc.c:119:20: note: Returning from 'kzalloc' priv_crtc_state = kzalloc(sizeof(*priv_crtc_state), GFP_KERNEL); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/lsdc/lsdc_crtc.c:120:6: note: Assuming 'priv_crtc_state' is non-null if (!priv_crtc_state) ^~~~~~~~~~~~~~~~ drivers/gpu/drm/lsdc/lsdc_crtc.c:120:2: note: Taking false branch if (!priv_crtc_state) ^ drivers/gpu/drm/lsdc/lsdc_crtc.c:123:33: note: The left operand of '&' is a garbage value priv_crtc_state->pix_fmt = val & CFG_PIX_FMT_MASK; ~~~ ^ >> drivers/gpu/drm/lsdc/lsdc_crtc.c:146:21: warning: Value stored to 'ddev' >> during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct drm_device *ddev = crtc->dev; ^~~~ ~~~~~~~~~ drivers/gpu/drm/lsdc/lsdc_crtc.c:146:21: note: Value stored to 'ddev' during its initialization is never read struct drm_device *ddev = crtc->dev; ^~~~ ~~~~~~~~~ Suppressed 11 warnings (4 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. 11 warnings generated. Suppressed 11 warnings (4 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. 22 warnings generated. drivers/gpu/drm/lsdc/lsdc_plane.c:163:13: warning: The left operand of '&' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult] return val & CFG_PIX_FMT_MASK; ^ drivers/gpu/drm/lsdc/lsdc_plane.c:277:6: note: Assuming 'crtc' is non-null if (!crtc) ^~~~~ drivers/gpu/drm/lsdc/lsdc_plane.c:277:2: note: Taking false branch if (!crtc) ^ drivers/gpu/drm/lsdc/lsdc_plane.c:281:14: note: Assuming 'new_crtc_state' is non-null if (WARN_ON(!new_crtc_state)) ^ include/asm-generic/bug.h:166:25: note: expanded from macro 'WARN_ON' int __ret_warn_on = !!(condition); \ ^~~~~~~~~ drivers/gpu/drm/lsdc/lsdc_plane.c:281:2: note: Taking false branch if (WARN_ON(!new_crtc_state)) ^ drivers/gpu/drm/lsdc/lsdc_plane.c:292:6: note: Assuming 'ret' is 0 if (ret) ^~~ drivers/gpu/drm/lsdc/lsdc_plane.c:292:2: note: Taking false branch if (ret) ^ drivers/gpu/drm/lsdc/lsdc_plane.c:299:8: note: 'new_fb' is non-null if ((!new_fb || !old_fb || ^~~~~~ drivers/gpu/drm/lsdc/lsdc_plane.c:299:7: note: Left side of '||' is false if ((!new_fb || !old_fb || ^ drivers/gpu/drm/lsdc/lsdc_plane.c:299:18: note: Assuming 'old_fb' is null if ((!new_fb || !old_fb || ^~~~~~~ drivers/gpu/drm/lsdc/lsdc_plane.c:299:26: note: Left side of '||' is true if ((!new_fb || !old_fb || ^ drivers/gpu/drm/lsdc/lsdc_plane.c:308:29: note: Calling 'lsdc_primary_get_default_format' priv_crtc_state->pix_fmt = lsdc_primary_get_default_format(crtc); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/lsdc/lsdc_plane.c:156:2: note: 'val' declared without an initial value u32 val; ^~~~~~~ drivers/gpu/drm/lsdc/lsdc_plane.c:158:6: note: Assuming 'index' is not equal to 0 if (index == 0) ^~~~~~~~~~ drivers/gpu/drm/lsdc/lsdc_plane.c:158:2: note: Taking false branch if (index == 0) ^ drivers/gpu/drm/lsdc/lsdc_plane.c:160:11: note: Assuming 'index' is not equal to 1 else if (index == 1) ^~~~~~~~~~ drivers/gpu/drm/lsdc/lsdc_plane.c:160:7: note: Taking false branch else if (index == 1) ^ drivers/gpu/drm/lsdc/lsdc_plane.c:163:13: note: The left operand of '&' is a garbage value return val & CFG_PIX_FMT_MASK; ~~~ ^ drivers/gpu/drm/lsdc/lsdc_plane.c:209:2: warning: 2nd function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage] lsdc_reg_write32(ldev, addr_reg, paddr); ^ drivers/gpu/drm/lsdc/lsdc_plane.c:365:6: note: Assuming field 'use_vram_helper' is false if (ldev->use_vram_helper) { ^~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/lsdc/lsdc_plane.c:365:2: note: Taking false branch if (ldev->use_vram_helper) { ^ drivers/gpu/drm/lsdc/lsdc_plane.c:378:7: note: Assuming field 'dirty_update' is true if (ldev->dirty_update) ^~~~~~~~~~~~~~~~~~ drivers/gpu/drm/lsdc/lsdc_plane.c:378:3: note: Taking true branch if (ldev->dirty_update) ^ drivers/gpu/drm/lsdc/lsdc_plane.c:384:2: note: Calling 'lsdc_update_fb_start_addr' lsdc_update_fb_start_addr(ldev, crtc, fb_addr); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/lsdc/lsdc_plane.c:172:2: note: 'addr_reg' declared without an initial value u32 addr_reg; ^~~~~~~~~~~~ drivers/gpu/drm/lsdc/lsdc_plane.c:181:6: note: Assuming 'index' is not equal to 0 if (index == 0) { ^~~~~~~~~~ drivers/gpu/drm/lsdc/lsdc_plane.c:181:2: note: Taking false branch if (index == 0) { ^ drivers/gpu/drm/lsdc/lsdc_plane.c:194:13: note: Assuming 'index' is not equal to 1 } else if (index == 1) { ^~~~~~~~~~ drivers/gpu/drm/lsdc/lsdc_plane.c:194:9: note: Taking false branch } else if (index == 1) { vim +/ddev +146 drivers/gpu/drm/lsdc/lsdc_crtc.c 983916ec4a8df3 suijingfeng 2022-02-03 140 983916ec4a8df3 suijingfeng 2022-02-03 141 983916ec4a8df3 suijingfeng 2022-02-03 142 static struct drm_crtc_state *lsdc_crtc_atomic_duplicate_state(struct drm_crtc *crtc) 983916ec4a8df3 suijingfeng 2022-02-03 143 { 983916ec4a8df3 suijingfeng 2022-02-03 144 struct lsdc_crtc_state *new_priv_state; 983916ec4a8df3 suijingfeng 2022-02-03 145 struct lsdc_crtc_state *old_priv_state; 983916ec4a8df3 suijingfeng 2022-02-03 @146 struct drm_device *ddev = crtc->dev; 983916ec4a8df3 suijingfeng 2022-02-03 147 983916ec4a8df3 suijingfeng 2022-02-03 148 if (drm_WARN_ON(ddev, !crtc->state)) 983916ec4a8df3 suijingfeng 2022-02-03 149 return NULL; 983916ec4a8df3 suijingfeng 2022-02-03 150 983916ec4a8df3 suijingfeng 2022-02-03 151 new_priv_state = kmalloc(sizeof(*new_priv_state), GFP_KERNEL); 983916ec4a8df3 suijingfeng 2022-02-03 152 if (!new_priv_state) 983916ec4a8df3 suijingfeng 2022-02-03 153 return NULL; 983916ec4a8df3 suijingfeng 2022-02-03 154 983916ec4a8df3 suijingfeng 2022-02-03 155 __drm_atomic_helper_crtc_duplicate_state(crtc, &new_priv_state->base); 983916ec4a8df3 suijingfeng 2022-02-03 156 983916ec4a8df3 suijingfeng 2022-02-03 157 old_priv_state = to_lsdc_crtc_state(crtc->state); 983916ec4a8df3 suijingfeng 2022-02-03 158 983916ec4a8df3 suijingfeng 2022-02-03 159 memcpy(&new_priv_state->pparams, &old_priv_state->pparams, 983916ec4a8df3 suijingfeng 2022-02-03 160 sizeof(new_priv_state->pparams)); 983916ec4a8df3 suijingfeng 2022-02-03 161 983916ec4a8df3 suijingfeng 2022-02-03 162 new_priv_state->pix_fmt = old_priv_state->pix_fmt; 983916ec4a8df3 suijingfeng 2022-02-03 163 983916ec4a8df3 suijingfeng 2022-02-03 164 return &new_priv_state->base; 983916ec4a8df3 suijingfeng 2022-02-03 165 } 983916ec4a8df3 suijingfeng 2022-02-03 166 --- 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]
