Re: [PATCH drm-misc-next v5 4/6] drm/gpuvm: track/lock/validate external/evicted objects

From: kernel test robot
Date: Mon Oct 02 2023 - 11:41:11 EST


Hi Danilo,

kernel test robot noticed the following build warnings:

[auto build test WARNING on a4ead6e37e3290cff399e2598d75e98777b69b37]

url: https://github.com/intel-lab-lkp/linux/commits/Danilo-Krummrich/drm-gpuvm-add-common-dma-resv-per-struct-drm_gpuvm/20230929-031831
base: a4ead6e37e3290cff399e2598d75e98777b69b37
patch link: https://lore.kernel.org/r/20230928191624.13703-5-dakr%40redhat.com
patch subject: [PATCH drm-misc-next v5 4/6] drm/gpuvm: track/lock/validate external/evicted objects
reproduce: (https://download.01.org/0day-ci/archive/20231002/202310022331.lPOA8kRt-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/202310022331.lPOA8kRt-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> ./include/drm/drm_gpuvm.h:563: warning: Function parameter or member 'vm_exec' not described in 'drm_gpuvm_exec_unlock'
>> ./include/drm/drm_gpuvm.h:563: warning: expecting prototype for drm_gpuvm_lock(). Prototype was for drm_gpuvm_exec_unlock() instead
>> ./include/drm/drm_gpuvm.h:601: warning: expecting prototype for drm_gpuvm_exec_resv_add_fence(). Prototype was for drm_gpuvm_exec_validate() instead

vim +563 ./include/drm/drm_gpuvm.h

527
528 int drm_gpuvm_prepare_objects(struct drm_gpuvm *gpuvm,
529 struct drm_exec *exec,
530 unsigned int num_fences);
531
532 int drm_gpuvm_prepare_range(struct drm_gpuvm *gpuvm,
533 struct drm_exec *exec,
534 u64 addr, u64 range,
535 unsigned int num_fences);
536
537 int drm_gpuvm_exec_lock(struct drm_gpuvm_exec *vm_exec,
538 unsigned int num_fences,
539 bool interruptible);
540
541 int drm_gpuvm_exec_lock_array(struct drm_gpuvm_exec *vm_exec,
542 struct drm_gem_object **objs,
543 unsigned int num_objs,
544 unsigned int num_fences,
545 bool interruptible);
546
547 int drm_gpuvm_exec_lock_range(struct drm_gpuvm_exec *vm_exec,
548 u64 addr, u64 range,
549 unsigned int num_fences,
550 bool interruptible);
551
552 /**
553 * drm_gpuvm_lock() - lock all dma-resv of all assoiciated BOs
554 * @gpuvm: the &drm_gpuvm
555 *
556 * Releases all dma-resv locks of all &drm_gem_objects previously acquired
557 * through drm_gpuvm_lock() or its variants.
558 *
559 * Returns: 0 on success, negative error code on failure.
560 */
561 static inline void
562 drm_gpuvm_exec_unlock(struct drm_gpuvm_exec *vm_exec)
> 563 {
564 drm_exec_fini(&vm_exec->exec);
565 }
566
567 int drm_gpuvm_validate(struct drm_gpuvm *gpuvm, struct drm_exec *exec);
568 void drm_gpuvm_resv_add_fence(struct drm_gpuvm *gpuvm,
569 struct drm_exec *exec,
570 struct dma_fence *fence,
571 enum dma_resv_usage private_usage,
572 enum dma_resv_usage extobj_usage);
573
574 /**
575 * drm_gpuvm_exec_resv_add_fence()
576 * @vm_exec: the &drm_gpuvm_exec abstraction
577 * @fence: fence to add
578 * @private_usage: private dma-resv usage
579 * @extobj_usage: extobj dma-resv usage
580 *
581 * See drm_gpuvm_resv_add_fence().
582 */
583 static inline void
584 drm_gpuvm_exec_resv_add_fence(struct drm_gpuvm_exec *vm_exec,
585 struct dma_fence *fence,
586 enum dma_resv_usage private_usage,
587 enum dma_resv_usage extobj_usage)
588 {
589 drm_gpuvm_resv_add_fence(vm_exec->vm, &vm_exec->exec, fence,
590 private_usage, extobj_usage);
591 }
592
593 /**
594 * drm_gpuvm_exec_resv_add_fence()
595 * @vm_exec: the &drm_gpuvm_exec abstraction
596 *
597 * See drm_gpuvm_validate().
598 */
599 static inline int
600 drm_gpuvm_exec_validate(struct drm_gpuvm_exec *vm_exec)
> 601 {
602 return drm_gpuvm_validate(vm_exec->vm, &vm_exec->exec);
603 }
604

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