Re: [PATCH drm-misc-next 2/3] drm/gpuva_mgr: generalize dma_resv/extobj handling and GEM validation

From: kernel test robot
Date: Mon Aug 21 2023 - 22:19:10 EST


Hi Danilo,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 25205087df1ffe06ccea9302944ed1f77dc68c6f]

url: https://github.com/intel-lab-lkp/linux/commits/Danilo-Krummrich/drm-drm_exec-build-always-builtin/20230821-123143
base: 25205087df1ffe06ccea9302944ed1f77dc68c6f
patch link: https://lore.kernel.org/r/20230820215320.4187-3-dakr%40redhat.com
patch subject: [PATCH drm-misc-next 2/3] drm/gpuva_mgr: generalize dma_resv/extobj handling and GEM validation
config: sparc-randconfig-r022-20230822 (https://download.01.org/0day-ci/archive/20230822/202308221021.jCZejWoy-lkp@xxxxxxxxx/config)
compiler: sparc64-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230822/202308221021.jCZejWoy-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308221021.jCZejWoy-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/drm_gpuva_mgr.c:750:1: warning: no previous prototype for 'drm_gpuva_manager_prepare_objects' [-Wmissing-prototypes]
750 | drm_gpuva_manager_prepare_objects(struct drm_gpuva_manager *mgr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_gpuva_mgr.c: In function '__drm_gpuva_sm_map':
drivers/gpu/drm/drm_gpuva_mgr.c:1744:39: warning: variable 'prev' set but not used [-Wunused-but-set-variable]
1744 | struct drm_gpuva *va, *next, *prev = NULL;
| ^~~~


vim +/drm_gpuva_manager_prepare_objects +750 drivers/gpu/drm/drm_gpuva_mgr.c

734
735 /**
736 * drm_gpuva_manager_prepare_objects() - prepare all assoiciated BOs
737 * @mgr: the &drm_gpuva_manager
738 * @num_fences: the amount of &dma_fences to reserve
739 *
740 * Calls drm_exec_prepare_obj() for all &drm_gem_objects the given
741 * &drm_gpuva_manager contains mappings of.
742 *
743 * Drivers can obtain the corresponding &drm_exec instance through
744 * DRM_GPUVA_EXEC(). It is the drivers responsibility to call drm_exec_init()
745 * and drm_exec_fini() accordingly.
746 *
747 * Returns: 0 on success, negative error code on failure.
748 */
749 int
> 750 drm_gpuva_manager_prepare_objects(struct drm_gpuva_manager *mgr,
751 unsigned int num_fences)
752 {
753 struct drm_exec *exec = DRM_GPUVA_EXEC(mgr);
754 MA_STATE(mas, &mgr->mt_ext, 0, 0);
755 union {
756 void *ptr;
757 uintptr_t cnt;
758 } ref;
759 int ret;
760
761 ret = drm_exec_prepare_obj(exec, &mgr->d_obj, num_fences);
762 if (ret)
763 goto out;
764
765 rcu_read_lock();
766 mas_for_each(&mas, ref.ptr, ULONG_MAX) {
767 struct drm_gem_object *obj;
768
769 mas_pause(&mas);
770 rcu_read_unlock();
771
772 obj = (struct drm_gem_object *)(uintptr_t)mas.index;
773 ret = drm_exec_prepare_obj(exec, obj, num_fences);
774 if (ret)
775 goto out;
776
777 rcu_read_lock();
778 }
779 rcu_read_unlock();
780
781 out:
782 return ret;
783 }
784 EXPORT_SYMBOL_GPL(drm_gpuva_manager_prepare_objects);
785

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