[PATCH 7/7] drm/i915: Use struct vma_resource instead of struct vma_snapshot

kernel test robot lkp at intel.com
Wed Dec 15 18:50:56 UTC 2021


Hi "Thomas,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on drm-tip/drm-tip]
[also build test WARNING on next-20211214]
[cannot apply to drm-exynos/exynos-drm-next drm/drm-next drm-intel/for-linux-next v5.16-rc5]
[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]

url:    https://github.com/0day-ci/linux/commits/Thomas-Hellstr-m/drm-i915-Asynchronous-vma-unbinding/20211215-183859
base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: i386-randconfig-a003-20211214 (https://download.01.org/0day-ci/archive/20211216/202112160255.Kmo6u2NC-lkp@intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://github.com/0day-ci/linux/commit/ede025870be746e37b5bcde123cdf741aa685fab
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Thomas-Hellstr-m/drm-i915-Asynchronous-vma-unbinding/20211215-183859
        git checkout ede025870be746e37b5bcde123cdf741aa685fab
        # save the config file to linux build tree
        mkdir build_dir
        make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/gpu/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>

All warnings (new ones prefixed by >>):

   In file included from drivers/gpu/drm/i915/i915_request.h:43,
                    from drivers/gpu/drm/i915/i915_active.h:13,
                    from drivers/gpu/drm/i915/gt/intel_ggtt_fencing.h:12,
                    from drivers/gpu/drm/i915/i915_vma.h:33,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:50,
                    from drivers/gpu/drm/i915/i915_driver.c:51:
>> drivers/gpu/drm/i915/i915_vma_resource.h:176:15: warning: 'struct intel_memory_region' declared inside parameter list will not be visible outside of this definition or declaration
     176 |        struct intel_memory_region *mr,
         |               ^~~~~~~~~~~~~~~~~~~
--
   In file included from drivers/gpu/drm/i915/i915_request.h:43,
                    from drivers/gpu/drm/i915/i915_active.h:13,
                    from drivers/gpu/drm/i915/gem/i915_gem_object_types.h:16,
                    from drivers/gpu/drm/i915/display/intel_frontbuffer.h:30,
                    from drivers/gpu/drm/i915/i915_drv.h:74,
                    from drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c:9:
>> drivers/gpu/drm/i915/i915_vma_resource.h:176:15: warning: 'struct intel_memory_region' declared inside parameter list will not be visible outside of this definition or declaration
     176 |        struct intel_memory_region *mr,
         |               ^~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c:464:5: warning: no previous prototype for 'prev_deps' [-Wmissing-prototypes]
     464 | int prev_deps(struct ttm_buffer_object *bo, struct ttm_operation_ctx *ctx,
         |     ^~~~~~~~~
--
   In file included from drivers/gpu/drm/i915/i915_request.h:43,
                    from drivers/gpu/drm/i915/i915_active.h:13,
                    from drivers/gpu/drm/i915/gem/i915_gem_object_types.h:16,
                    from drivers/gpu/drm/i915/display/intel_frontbuffer.h:30,
                    from drivers/gpu/drm/i915/i915_vma.c:28:
>> drivers/gpu/drm/i915/i915_vma_resource.h:176:15: warning: 'struct intel_memory_region' declared inside parameter list will not be visible outside of this definition or declaration
     176 |        struct intel_memory_region *mr,
         |               ^~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/i915_vma.c: In function 'i915_vma_resource_init_from_vma':
   drivers/gpu/drm/i915/i915_vma.c:394:48: error: passing argument 8 of 'i915_vma_resource_init' from incompatible pointer type [-Werror=incompatible-pointer-types]
     394 |           i915_gem_object_is_lmem(obj), obj->mm.region,
         |                                         ~~~~~~~^~~~~~~
         |                                                |
         |                                                struct intel_memory_region *
   In file included from drivers/gpu/drm/i915/i915_request.h:43,
                    from drivers/gpu/drm/i915/i915_active.h:13,
                    from drivers/gpu/drm/i915/gem/i915_gem_object_types.h:16,
                    from drivers/gpu/drm/i915/display/intel_frontbuffer.h:30,
                    from drivers/gpu/drm/i915/i915_vma.c:28:
   drivers/gpu/drm/i915/i915_vma_resource.h:176:36: note: expected 'struct intel_memory_region *' but argument is of type 'struct intel_memory_region *'
     176 |        struct intel_memory_region *mr,
         |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
   cc1: some warnings being treated as errors
--
   In file included from drivers/gpu/drm/i915/i915_request.h:43,
                    from drivers/gpu/drm/i915/i915_active.h:13,
                    from drivers/gpu/drm/i915/gem/i915_gem_object_types.h:16,
                    from drivers/gpu/drm/i915/display/intel_frontbuffer.h:30,
                    from drivers/gpu/drm/i915/i915_drv.h:74,
                    from drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c:12:
>> drivers/gpu/drm/i915/i915_vma_resource.h:176:15: warning: 'struct intel_memory_region' declared inside parameter list will not be visible outside of this definition or declaration
     176 |        struct intel_memory_region *mr,
         |               ^~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c:59:6: warning: no previous prototype for 'intel_pxp_debugfs_register' [-Wmissing-prototypes]
      59 | void intel_pxp_debugfs_register(struct intel_pxp *pxp, struct dentry *gt_root)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~


vim +176 drivers/gpu/drm/i915/i915_vma_resource.h

   146	
   147	/**
   148	 * i915_vma_resource_init - Initialize a vma resource.
   149	 * @vma_res: The vma resource to initialize
   150	 * @vm: Pointer to the vm.
   151	 * @pages: The pages sg-table.
   152	 * @page_sizes: Page sizes of the pages.
   153	 * @pages_rsgt: Pointer to a struct i915_refct_sgt of an object with
   154	 * delayed destruction.
   155	 * @readonly: Whether the vma should be bound read-only.
   156	 * @lmem: Whether the vma points to lmem.
   157	 * @mr: The memory region of the object the vma points to.
   158	 * @ops: The backend ops.
   159	 * @private: Bind backend private info.
   160	 * @start: Offset into the address space of bind range start.
   161	 * @node_size: Size of the allocated range manager node.
   162	 * @size: Bind size.
   163	 *
   164	 * Initializes a vma resource allocated using i915_vma_resource_alloc().
   165	 * The reason for having separate allocate and initialize function is that
   166	 * initialization may need to be performed from under a lock where
   167	 * allocation is not allowed.
   168	 */
   169	static inline void i915_vma_resource_init(struct i915_vma_resource *vma_res,
   170						  struct i915_address_space *vm,
   171						  struct sg_table *pages,
   172						  const struct i915_page_sizes *page_sizes,
   173						  struct i915_refct_sgt *pages_rsgt,
   174						  bool readonly,
   175						  bool lmem,
 > 176						  struct intel_memory_region *mr,
   177						  const struct i915_vma_ops *ops,
   178						  void *private,
   179						  unsigned long start,
   180						  unsigned long node_size,
   181						  unsigned long size)
   182	{
   183		__i915_vma_resource_init(vma_res);
   184		vma_res->vm = vm;
   185		vma_res->bi.pages = pages;
   186		vma_res->bi.page_sizes = *page_sizes;
   187		if (pages_rsgt)
   188			vma_res->bi.pages_rsgt = i915_refct_sgt_get(pages_rsgt);
   189		vma_res->bi.readonly = readonly;
   190		vma_res->bi.lmem = lmem;
   191	#if IS_ENABLED(CONFIG_DRM_I915_CAPTURE_ERROR)
   192		vma_res->mr = mr;
   193	#endif
   194		vma_res->ops = ops;
   195		vma_res->private = private;
   196		vma_res->start = start;
   197		vma_res->node_size = node_size;
   198		vma_res->vma_size = size;
   199	}
   200	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org


More information about the dri-devel mailing list