[Intel-gfx] [PATCH 08/10] drm/i915/uapi: disable capturing objects on recoverable contexts

kernel test robot lkp at intel.com
Thu May 26 00:08:14 UTC 2022


Hi Matthew,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-tip/drm-tip]
[also build test ERROR on v5.18 next-20220525]
[cannot apply to drm-intel/for-linux-next drm/drm-next]
[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/intel-lab-lkp/linux/commits/Matthew-Auld/small-BAR-uapi-bits/20220526-024641
base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: i386-randconfig-a004 (https://download.01.org/0day-ci/archive/20220526/202205260728.itOPg4qx-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project d52a6e75b0c402c7f3b42a2b1b2873f151220947)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/intel-lab-lkp/linux/commit/fdc3574e30bb0fdfdc9569fa42d369b1fae41e9e
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Matthew-Auld/small-BAR-uapi-bits/20220526-024641
        git checkout fdc3574e30bb0fdfdc9569fa42d369b1fae41e9e
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash

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

All errors (new ones prefixed by >>):

>> drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c:3429:6: error: assigning to 'int' from incompatible type 'void'
           err = eb_capture_stage(&eb);
               ^ ~~~~~~~~~~~~~~~~~~~~~
   1 error generated.


vim +3429 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c

  3384	
  3385		if (args->flags & I915_EXEC_FENCE_OUT) {
  3386			out_fence_fd = get_unused_fd_flags(O_CLOEXEC);
  3387			if (out_fence_fd < 0) {
  3388				err = out_fence_fd;
  3389				goto err_in_fence;
  3390			}
  3391		}
  3392	
  3393		err = eb_create(&eb);
  3394		if (err)
  3395			goto err_out_fence;
  3396	
  3397		GEM_BUG_ON(!eb.lut_size);
  3398	
  3399		err = eb_select_context(&eb);
  3400		if (unlikely(err))
  3401			goto err_destroy;
  3402	
  3403		err = eb_select_engine(&eb);
  3404		if (unlikely(err))
  3405			goto err_context;
  3406	
  3407		err = eb_lookup_vmas(&eb);
  3408		if (err) {
  3409			eb_release_vmas(&eb, true);
  3410			goto err_engine;
  3411		}
  3412	
  3413		i915_gem_ww_ctx_init(&eb.ww, true);
  3414	
  3415		err = eb_relocate_parse(&eb);
  3416		if (err) {
  3417			/*
  3418			 * If the user expects the execobject.offset and
  3419			 * reloc.presumed_offset to be an exact match,
  3420			 * as for using NO_RELOC, then we cannot update
  3421			 * the execobject.offset until we have completed
  3422			 * relocation.
  3423			 */
  3424			args->flags &= ~__EXEC_HAS_RELOC;
  3425			goto err_vma;
  3426		}
  3427	
  3428		ww_acquire_done(&eb.ww.ctx);
> 3429		err = eb_capture_stage(&eb);
  3430		if (err)
  3431			goto err_vma;
  3432	
  3433		out_fence = eb_requests_create(&eb, in_fence, out_fence_fd);
  3434		if (IS_ERR(out_fence)) {
  3435			err = PTR_ERR(out_fence);
  3436			out_fence = NULL;
  3437			if (eb.requests[0])
  3438				goto err_request;
  3439			else
  3440				goto err_vma;
  3441		}
  3442	
  3443		err = eb_submit(&eb);
  3444	
  3445	err_request:
  3446		eb_requests_get(&eb);
  3447		err = eb_requests_add(&eb, err);
  3448	
  3449		if (eb.fences)
  3450			signal_fence_array(&eb, eb.composite_fence ?
  3451					   eb.composite_fence :
  3452					   &eb.requests[0]->fence);
  3453	
  3454		if (out_fence) {
  3455			if (err == 0) {
  3456				fd_install(out_fence_fd, out_fence->file);
  3457				args->rsvd2 &= GENMASK_ULL(31, 0); /* keep in-fence */
  3458				args->rsvd2 |= (u64)out_fence_fd << 32;
  3459				out_fence_fd = -1;
  3460			} else {
  3461				fput(out_fence->file);
  3462			}
  3463		}
  3464	
  3465		if (unlikely(eb.gem_context->syncobj)) {
  3466			drm_syncobj_replace_fence(eb.gem_context->syncobj,
  3467						  eb.composite_fence ?
  3468						  eb.composite_fence :
  3469						  &eb.requests[0]->fence);
  3470		}
  3471	
  3472		if (!out_fence && eb.composite_fence)
  3473			dma_fence_put(eb.composite_fence);
  3474	
  3475		eb_requests_put(&eb);
  3476	
  3477	err_vma:
  3478		eb_release_vmas(&eb, true);
  3479		WARN_ON(err == -EDEADLK);
  3480		i915_gem_ww_ctx_fini(&eb.ww);
  3481	
  3482		if (eb.batch_pool)
  3483			intel_gt_buffer_pool_put(eb.batch_pool);
  3484	err_engine:
  3485		eb_put_engine(&eb);
  3486	err_context:
  3487		i915_gem_context_put(eb.gem_context);
  3488	err_destroy:
  3489		eb_destroy(&eb);
  3490	err_out_fence:
  3491		if (out_fence_fd != -1)
  3492			put_unused_fd(out_fence_fd);
  3493	err_in_fence:
  3494		dma_fence_put(in_fence);
  3495	err_ext:
  3496		put_fence_array(eb.fences, eb.num_fences);
  3497		return err;
  3498	}
  3499	

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


More information about the Intel-gfx mailing list