drm/i915: Avoid using the i915_fence_array when collecting dependencies
Since the gt migration code was using only a single fence for dependencies, these were collected in a dma_fence_array. However, it turns out that it's illegal to use some dma_fences in a dma_fence_array, in particular other dma_fence_arrays and dma_fence_chains, and this causes trouble for us moving forward. Have the gt migration code instead take a const struct i915_deps for dependencies. This means we can skip the dma_fence_array creation and instead pass the struct i915_deps instead to circumvent the problem. v2: - Make the prev_deps() function static. (kernel test robot <lkp@intel.com>) - Update the struct i915_deps kerneldoc. v4: - Rebase. Fixes: 5652df82 ("drm/i915/ttm: Update i915_gem_obj_copy_ttm() to be asynchronous") Signed-off-by:Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by:
Matthew Auld <matthew.auld@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20211221200050.436316-2-thomas.hellstrom@linux.intel.com
Showing
- drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c 33 additions, 96 deletionsdrivers/gpu/drm/i915/gem/i915_gem_ttm_move.c
- drivers/gpu/drm/i915/gem/i915_gem_ttm_move.h 17 additions, 0 deletionsdrivers/gpu/drm/i915/gem/i915_gem_ttm_move.h
- drivers/gpu/drm/i915/gt/intel_migrate.c 12 additions, 12 deletionsdrivers/gpu/drm/i915/gt/intel_migrate.c
- drivers/gpu/drm/i915/gt/intel_migrate.h 5 additions, 4 deletionsdrivers/gpu/drm/i915/gt/intel_migrate.h
- drivers/gpu/drm/i915/i915_request.c 22 additions, 0 deletionsdrivers/gpu/drm/i915/i915_request.c
- drivers/gpu/drm/i915/i915_request.h 2 additions, 0 deletionsdrivers/gpu/drm/i915/i915_request.h
Loading