[Intel-gfx] [PATCH 1/6] drm/ttm: rename and cleanup ttm_bo_init_reserved

kernel test robot lkp at intel.com
Thu Jul 7 17:24:55 UTC 2022


Hi "Christian,

I love your patch! Perhaps something to improve:

[auto build test WARNING on drm-tip/drm-tip]

url:    https://github.com/intel-lab-lkp/linux/commits/Christian-K-nig/drm-ttm-rename-and-cleanup-ttm_bo_init_reserved/20220707-192538
base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: x86_64-randconfig-a011 (https://download.01.org/0day-ci/archive/20220708/202207080122.B4DLOdD2-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
reproduce (this is a W=1 build):
        # https://github.com/intel-lab-lkp/linux/commit/607b24f78509a1fb0e55c8f9f610113bb0421706
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Christian-K-nig/drm-ttm-rename-and-cleanup-ttm_bo_init_reserved/20220707-192538
        git checkout 607b24f78509a1fb0e55c8f9f610113bb0421706
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/gpu/drm/ttm/

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

All warnings (new ones prefixed by >>):

   drivers/gpu/drm/ttm/ttm_bo.c:99: warning: Function parameter or member 'bulk' not described in 'ttm_bo_set_bulk_move'
>> drivers/gpu/drm/ttm/ttm_bo.c:962: warning: expecting prototype for ttm_bo_init_validate(). Prototype was for ttm_bo_init_reserved() instead


vim +962 drivers/gpu/drm/ttm/ttm_bo.c

ba4e7d973dd09b6 Thomas Hellstrom  2009-06-10   923  
607b24f78509a1f Christian König   2022-07-07   924  /**
607b24f78509a1f Christian König   2022-07-07   925   * ttm_bo_init_validate
607b24f78509a1f Christian König   2022-07-07   926   *
607b24f78509a1f Christian König   2022-07-07   927   * @bdev: Pointer to a ttm_device struct.
607b24f78509a1f Christian König   2022-07-07   928   * @bo: Pointer to a ttm_buffer_object to be initialized.
607b24f78509a1f Christian König   2022-07-07   929   * @type: Requested type of buffer object.
607b24f78509a1f Christian König   2022-07-07   930   * @placement: Initial placement for buffer object.
607b24f78509a1f Christian König   2022-07-07   931   * @alignment: Data alignment in pages.
607b24f78509a1f Christian König   2022-07-07   932   * @ctx: TTM operation context for memory allocation.
607b24f78509a1f Christian König   2022-07-07   933   * @sg: Scatter-gather table.
607b24f78509a1f Christian König   2022-07-07   934   * @resv: Pointer to a dma_resv, or NULL to let ttm allocate one.
607b24f78509a1f Christian König   2022-07-07   935   * @destroy: Destroy function. Use NULL for kfree().
607b24f78509a1f Christian König   2022-07-07   936   *
607b24f78509a1f Christian König   2022-07-07   937   * This function initializes a pre-allocated struct ttm_buffer_object.
607b24f78509a1f Christian König   2022-07-07   938   * As this object may be part of a larger structure, this function,
607b24f78509a1f Christian König   2022-07-07   939   * together with the @destroy function, enables driver-specific objects
607b24f78509a1f Christian König   2022-07-07   940   * derived from a ttm_buffer_object.
607b24f78509a1f Christian König   2022-07-07   941   *
607b24f78509a1f Christian König   2022-07-07   942   * On successful return, the caller owns an object kref to @bo. The kref and
607b24f78509a1f Christian König   2022-07-07   943   * list_kref are usually set to 1, but note that in some situations, other
607b24f78509a1f Christian König   2022-07-07   944   * tasks may already be holding references to @bo as well.
607b24f78509a1f Christian König   2022-07-07   945   * Furthermore, if resv == NULL, the buffer's reservation lock will be held,
607b24f78509a1f Christian König   2022-07-07   946   * and it is the caller's responsibility to call ttm_bo_unreserve.
607b24f78509a1f Christian König   2022-07-07   947   *
607b24f78509a1f Christian König   2022-07-07   948   * If a failure occurs, the function will call the @destroy function. Thus,
607b24f78509a1f Christian König   2022-07-07   949   * after a failure, dereferencing @bo is illegal and will likely cause memory
607b24f78509a1f Christian König   2022-07-07   950   * corruption.
607b24f78509a1f Christian König   2022-07-07   951   *
607b24f78509a1f Christian König   2022-07-07   952   * Returns
607b24f78509a1f Christian König   2022-07-07   953   * -ENOMEM: Out of memory.
607b24f78509a1f Christian König   2022-07-07   954   * -EINVAL: Invalid placement flags.
607b24f78509a1f Christian König   2022-07-07   955   * -ERESTARTSYS: Interrupted by signal while sleeping waiting for resources.
607b24f78509a1f Christian König   2022-07-07   956   */
607b24f78509a1f Christian König   2022-07-07   957  int ttm_bo_init_reserved(struct ttm_device *bdev, struct ttm_buffer_object *bo,
607b24f78509a1f Christian König   2022-07-07   958  			 enum ttm_bo_type type, struct ttm_placement *placement,
607b24f78509a1f Christian König   2022-07-07   959  			 uint32_t alignment, struct ttm_operation_ctx *ctx,
607b24f78509a1f Christian König   2022-07-07   960  			 struct sg_table *sg, struct dma_resv *resv,
ba4e7d973dd09b6 Thomas Hellstrom  2009-06-10   961  			 void (*destroy) (struct ttm_buffer_object *))
ba4e7d973dd09b6 Thomas Hellstrom  2009-06-10  @962  {
d79025c7f5e3764 Christian König   2021-02-16   963  	static const struct ttm_place sys_mem = { .mem_type = TTM_PL_SYSTEM };
bfa3357ef9abc9d Christian König   2021-04-15   964  	int ret;
57de4ba959b290f Jerome Glisse     2011-11-11   965  
ba4e7d973dd09b6 Thomas Hellstrom  2009-06-10   966  	kref_init(&bo->kref);
ba4e7d973dd09b6 Thomas Hellstrom  2009-06-10   967  	INIT_LIST_HEAD(&bo->ddestroy);
ba4e7d973dd09b6 Thomas Hellstrom  2009-06-10   968  	bo->bdev = bdev;
ba4e7d973dd09b6 Thomas Hellstrom  2009-06-10   969  	bo->type = type;
607b24f78509a1f Christian König   2022-07-07   970  	bo->page_alignment = alignment;
607b24f78509a1f Christian König   2022-07-07   971  	bo->destroy = destroy;
deb0814b43f370a Christian König   2020-09-21   972  	bo->pin_count = 0;
129b78bfca591e7 Dave Airlie       2012-04-02   973  	bo->sg = sg;
fee2ede155423b0 Christian König   2022-01-24   974  	bo->bulk_move = NULL;
607b24f78509a1f Christian König   2022-07-07   975  	if (resv)
2e3c9ec4d151c04 Gerd Hoffmann     2019-08-05   976  		bo->base.resv = resv;
607b24f78509a1f Christian König   2022-07-07   977  	else
2e3c9ec4d151c04 Gerd Hoffmann     2019-08-05   978  		bo->base.resv = &bo->base._resv;
8af8a109b34fa88 Christian König   2020-10-01   979  	atomic_inc(&ttm_glob.bo_count);
ba4e7d973dd09b6 Thomas Hellstrom  2009-06-10   980  
bfa3357ef9abc9d Christian König   2021-04-15   981  	ret = ttm_resource_alloc(bo, &sys_mem, &bo->resource);
bfa3357ef9abc9d Christian König   2021-04-15   982  	if (unlikely(ret)) {
bfa3357ef9abc9d Christian König   2021-04-15   983  		ttm_bo_put(bo);
bfa3357ef9abc9d Christian König   2021-04-15   984  		return ret;
bfa3357ef9abc9d Christian König   2021-04-15   985  	}
bfa3357ef9abc9d Christian König   2021-04-15   986  
ba4e7d973dd09b6 Thomas Hellstrom  2009-06-10   987  	/*
ba4e7d973dd09b6 Thomas Hellstrom  2009-06-10   988  	 * For ttm_bo_type_device buffers, allocate
ba4e7d973dd09b6 Thomas Hellstrom  2009-06-10   989  	 * address space from the device.
ba4e7d973dd09b6 Thomas Hellstrom  2009-06-10   990  	 */
607b24f78509a1f Christian König   2022-07-07   991  	if (bo->type == ttm_bo_type_device || bo->type == ttm_bo_type_sg) {
9d6f4484e81c000 Gerd Hoffmann     2019-09-05   992  		ret = drm_vma_offset_add(bdev->vma_manager, &bo->base.vma_node,
607b24f78509a1f Christian König   2022-07-07   993  					 PFN_UP(bo->base.size));
607b24f78509a1f Christian König   2022-07-07   994  		if (ret)
607b24f78509a1f Christian König   2022-07-07   995  			goto err_put;
607b24f78509a1f Christian König   2022-07-07   996  	}
ba4e7d973dd09b6 Thomas Hellstrom  2009-06-10   997  
f4f4e3e3e9f3bde Maarten Lankhorst 2014-01-09   998  	/* passed reservation objects should already be locked,
f4f4e3e3e9f3bde Maarten Lankhorst 2014-01-09   999  	 * since otherwise lockdep will be angered in radeon.
f4f4e3e3e9f3bde Maarten Lankhorst 2014-01-09  1000  	 */
607b24f78509a1f Christian König   2022-07-07  1001  	if (!resv)
607b24f78509a1f Christian König   2022-07-07  1002  		WARN_ON(!dma_resv_trylock(bo->base.resv));
607b24f78509a1f Christian König   2022-07-07  1003  	else
607b24f78509a1f Christian König   2022-07-07  1004  		dma_resv_assert_held(resv);
5e338405119a80a Maarten Lankhorst 2013-06-27  1005  
6fead44a4c5897c Christian König   2017-04-12  1006  	ret = ttm_bo_validate(bo, placement, ctx);
607b24f78509a1f Christian König   2022-07-07  1007  	if (unlikely(ret))
607b24f78509a1f Christian König   2022-07-07  1008  		goto err_unlock;
ba4e7d973dd09b6 Thomas Hellstrom  2009-06-10  1009  
607b24f78509a1f Christian König   2022-07-07  1010  	return 0;
607b24f78509a1f Christian König   2022-07-07  1011  
607b24f78509a1f Christian König   2022-07-07  1012  err_unlock:
c2c139cf435b189 Nicolai Hähnle    2017-02-14  1013  	if (!resv)
607b24f78509a1f Christian König   2022-07-07  1014  		dma_resv_unlock(bo->base.resv);
ba4e7d973dd09b6 Thomas Hellstrom  2009-06-10  1015  
607b24f78509a1f Christian König   2022-07-07  1016  err_put:
f44907593d746d4 Thomas Zimmermann 2018-06-21  1017  	ttm_bo_put(bo);
c2c139cf435b189 Nicolai Hähnle    2017-02-14  1018  	return ret;
c2c139cf435b189 Nicolai Hähnle    2017-02-14  1019  }
ca9cf68de1e7429 Nicolai Hähnle    2017-02-16  1020  EXPORT_SYMBOL(ttm_bo_init_reserved);
ca9cf68de1e7429 Nicolai Hähnle    2017-02-16  1021  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp


More information about the Intel-gfx mailing list