[drm-xe:drm-xe-next 1/4] drivers/gpu/drm/xe/xe_bo.c:1635:2: error: call to undeclared function 'drmm_release_action'; ISO C99 and later do not support implicit function declarations

kernel test robot lkp at intel.com
Mon Feb 5 23:34:35 UTC 2024


tree:   https://gitlab.freedesktop.org/drm/xe/kernel.git drm-xe-next
head:   897c5b367db8affee69823c7e639caf33187bdf2
commit: 30b71bce350e4ab5e495697838b1fb8478970140 [1/4] drm/xe/guc: Allocate GuC data structures in system memory for initial load
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20240206/202402060701.gySJwBBM-lkp@intel.com/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240206/202402060701.gySJwBBM-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/202402060701.gySJwBBM-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/gpu/drm/xe/xe_bo.c:1635:2: error: call to undeclared function 'drmm_release_action'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    1635 |         drmm_release_action(&xe->drm, __xe_bo_unpin_map_no_vm, *src);
         |         ^
   drivers/gpu/drm/xe/xe_bo.c:1635:2: note: did you mean 'devm_release_action'?
   include/linux/device.h:388:6: note: 'devm_release_action' declared here
     388 | void devm_release_action(struct device *dev, void (*action)(void *), void *data);
         |      ^
   1 error generated.


vim +/drmm_release_action +1635 drivers/gpu/drm/xe/xe_bo.c

  1608	
  1609	/**
  1610	 * xe_managed_bo_reinit_in_vram
  1611	 * @xe: xe device
  1612	 * @tile: Tile where the new buffer will be created
  1613	 * @src: Managed buffer object allocated in system memory
  1614	 *
  1615	 * Replace a managed src buffer object allocated in system memory with a new
  1616	 * one allocated in vram, copying the data between them.
  1617	 * Buffer object in VRAM is not going to have the same GGTT address, the caller
  1618	 * is responsible for making sure that any old references to it are updated.
  1619	 *
  1620	 * Returns 0 for success, negative error code otherwise.
  1621	 */
  1622	int xe_managed_bo_reinit_in_vram(struct xe_device *xe, struct xe_tile *tile, struct xe_bo **src)
  1623	{
  1624		struct xe_bo *bo;
  1625	
  1626		xe_assert(xe, IS_DGFX(xe));
  1627		xe_assert(xe, !(*src)->vmap.is_iomem);
  1628	
  1629		bo = xe_managed_bo_create_from_data(xe, tile, (*src)->vmap.vaddr, (*src)->size,
  1630						    XE_BO_CREATE_VRAM_IF_DGFX(tile) |
  1631						    XE_BO_CREATE_GGTT_BIT);
  1632		if (IS_ERR(bo))
  1633			return PTR_ERR(bo);
  1634	
> 1635		drmm_release_action(&xe->drm, __xe_bo_unpin_map_no_vm, *src);
  1636		*src = bo;
  1637	
  1638		return 0;
  1639	}
  1640	

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


More information about the Intel-xe mailing list