Hi Ioana,
kernel test robot noticed the following build warnings:
[auto build test WARNING on 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f]
url: https://github.com/intel-lab-lkp/linux/commits/Ioana-Ciocoi-Radulescu/drm-ge... base: 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f patch link: https://lore.kernel.org/r/20260226-neutron-v1-5-46eccb3bb50a%40nxp.com patch subject: [PATCH 5/9] accel/neutron: Add GEM buffer object support config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20260227/202602270531.MP8x6wo3-lkp@i...) compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260227/202602270531.MP8x6wo3-lkp@i...)
If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot lkp@intel.com | Closes: https://lore.kernel.org/oe-kbuild-all/202602270531.MP8x6wo3-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/accel/neutron/neutron_gem.c:52:6: warning: variable 'gem_obj' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
52 | if (drm_WARN_ON(drm, !IS_ALIGNED(dma_obj->dma_addr, NEUTRON_BO_ALIGN))) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/drm/drm_print.h:789:2: note: expanded from macro 'drm_WARN_ON' 789 | drm_WARN((drm), (x), "%s", \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 790 | "drm_WARN_ON(" __stringify(x) ")") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/drm/drm_print.h:779:2: note: expanded from macro 'drm_WARN' 779 | WARN(condition, "%s %s: [drm] " format, \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 780 | dev_driver_string(__drm_to_dev(drm)), \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 781 | dev_name(__drm_to_dev(drm)), ## arg) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/asm-generic/bug.h:163:36: note: expanded from macro 'WARN' 163 | #define WARN(condition, format...) ({ \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | int __ret_warn_on = !!(condition); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 165 | if (unlikely(__ret_warn_on)) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 166 | __WARN_printf(TAINT_WARN, format); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | unlikely(__ret_warn_on); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 168 | }) | ~~ drivers/accel/neutron/neutron_gem.c:67:21: note: uninitialized use occurs here 67 | drm_gem_object_put(gem_obj); | ^~~~~~~ drivers/accel/neutron/neutron_gem.c:52:2: note: remove the 'if' if its condition is always false 52 | if (drm_WARN_ON(drm, !IS_ALIGNED(dma_obj->dma_addr, NEUTRON_BO_ALIGN))) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 53 | ret = -EFAULT; | ~~~~~~~~~~~~~~ 54 | goto out_put; | ~~~~~~~~~~~~~ 55 | } | ~ drivers/accel/neutron/neutron_gem.c:38:32: note: initialize the variable 'gem_obj' to silence this warning 38 | struct drm_gem_object *gem_obj; | ^ | = NULL 1 warning generated.
vim +52 drivers/accel/neutron/neutron_gem.c
33 34 int neutron_ioctl_create_bo(struct drm_device *drm, void *data, struct drm_file *filp) 35 { 36 struct drm_neutron_create_bo *args = data; 37 struct drm_gem_dma_object *dma_obj; 38 struct drm_gem_object *gem_obj; 39 size_t size; 40 int ret; 41 42 if (!args->size || args->pad) 43 return -EINVAL; 44 45 size = ALIGN(args->size, NEUTRON_BO_ALIGN); 46 47 dma_obj = drm_gem_dma_create(drm, size); 48 if (IS_ERR(dma_obj)) 49 return PTR_ERR(dma_obj); 50 51 /* We expect correctly aligned buffers, but double-check */
52 if (drm_WARN_ON(drm, !IS_ALIGNED(dma_obj->dma_addr, NEUTRON_BO_ALIGN))) {
53 ret = -EFAULT; 54 goto out_put; 55 } 56 57 gem_obj = &dma_obj->base; 58 ret = drm_gem_handle_create(filp, gem_obj, &args->handle); 59 if (ret) 60 goto out_put; 61 62 args->map_offset = drm_vma_node_offset_addr(&gem_obj->vma_node); 63 args->size = gem_obj->size; 64 65 out_put: 66 /* No need to keep a reference of the GEM object. Freeing is handled by user */ 67 drm_gem_object_put(gem_obj); 68 69 return ret; 70 } 71
linaro-mm-sig@lists.linaro.org