[PATCH v2 3/3] drm/amdgpu: use drm_file name
kernel test robot
lkp at intel.com
Thu Sep 19 21:36:19 UTC 2024
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/202409200113.0AEe5YG9-lkp@intel.com/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/202409200113.0AEe5YG9-lkp@intel.com/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 <lkp at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202409200113.0AEe5YG9-lkp@intel.com/
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
More information about the dri-devel
mailing list