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@xxxxxxxxx/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@xxxxxxxxx> 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