Hi Pierre-Eric,

kernel test robot noticed the following build warnings:

[auto build test WARNING on drm-exynos/exynos-drm-next]
[also build test WARNING on drm-intel/for-linux-next 
drm-intel/for-linux-next-fixes drm-misc/drm-misc-next drm-tip/drm-tip 
linus/master v6.11 next-20240919]
[cannot apply to drm/drm-next]
[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#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Pierre-Eric-Pelloux-Prayer/drm-use-drm_file-name-in-fdinfo/20240916-213521
base:   https://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos.git 
exynos-drm-next
patch link:    
https://lore.kernel.org/r/20240916133223.1023773-3-pierre-eric.pelloux-prayer%40amd.com
patch subject: [PATCH v2 3/3] drm/amdgpu: use drm_file name
config: x86_64-allyesconfig 
(https://download.01.org/0day-ci/archive/20240920/[email protected]/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 
3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20240920/[email protected]/reproduce)

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 <[email protected]>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/[email protected]/

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c:997:32: warning: variable 'file' is 
>> uninitialized when used here [-Wuninitialized]
     997 |         r = mutex_lock_interruptible(&file->name_lock);
         |                                       ^~~~
   include/linux/mutex.h:162:72: note: expanded from macro 
'mutex_lock_interruptible'
     162 | #define mutex_lock_interruptible(lock) 
mutex_lock_interruptible_nested(lock, 0)
         |                                                                      
  ^~~~
   drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c:990:23: note: initialize the 
variable 'file' to silence this warning
     990 |         struct drm_file *file;
         |                              ^
         |                               = NULL
   1 warning generated.


vim +/file +997 drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c

   984  
   985  #if defined(CONFIG_DEBUG_FS)
   986  static int amdgpu_debugfs_gem_info_show(struct seq_file *m, void 
*unused)
   987  {
   988          struct amdgpu_device *adev = m->private;
   989          struct drm_device *dev = adev_to_drm(adev);
   990          struct drm_file *file;
   991          int r;
   992  
   993          r = mutex_lock_interruptible(&dev->filelist_mutex);
   994          if (r)
   995                  return r;
   996  
 > 997          r = mutex_lock_interruptible(&file->name_lock);
   998          if (r)
   999                  goto out;
  1000  
  1001          list_for_each_entry(file, &dev->filelist, lhead) {
  1002                  struct task_struct *task;
  1003                  struct drm_gem_object *gobj;
  1004                  struct pid *pid;
  1005                  int id;
  1006  
  1007                  /*
  1008                   * Although we have a valid reference on file->pid, 
that does
  1009                   * not guarantee that the task_struct who called 
get_pid() is
  1010                   * still alive (e.g. get_pid(current) => fork() => 
exit()).
  1011                   * Therefore, we need to protect this ->comm access 
using RCU.
  1012                   */
  1013                  rcu_read_lock();
  1014                  pid = rcu_dereference(file->pid);
  1015                  task = pid_task(pid, PIDTYPE_TGID);
  1016                  seq_printf(m, "pid %8d command %s", pid_nr(pid),
  1017                                     task ? task->comm : "<unknown>");
  1018                  if (file->name) {
  1019                          seq_putc(m, '/');
  1020                          seq_puts(m, file->name);
  1021                  }
  1022                  seq_puts(m, ":\n");
  1023                  rcu_read_unlock();
  1024  
  1025                  spin_lock(&file->table_lock);
  1026                  idr_for_each_entry(&file->object_idr, gobj, id) {
  1027                          struct amdgpu_bo *bo = gem_to_amdgpu_bo(gobj);
  1028  
  1029                          amdgpu_bo_print_info(id, bo, m);
  1030                  }
  1031                  spin_unlock(&file->table_lock);
  1032          }
  1033          mutex_unlock(&file->name_lock);
  1034  out:
  1035          mutex_unlock(&dev->filelist_mutex);
  1036          return 0;
  1037  }
  1038  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to