Skip to content

Commit

Permalink
drm/i915/ttm: Return some errors instead of trying memcpy move
Browse files Browse the repository at this point in the history
The i915_ttm_accel_move() function may return error codes that should
be propagated further up the stack rather than consumed assuming that
the accel move failed and could be replaced with a memcpy move.

For -EINTR, -ERESTARTSYS and -EAGAIN, just propagate those codes, rather
than retrying with a memcpy move.

Fixes: 2b0a750 ("drm/i915/ttm: Failsafe migration blits")
Cc: Matthew Auld <matthew.auld@intel.com>
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/20220201070340.16457-1-thomas.hellstrom@linux.intel.com
  • Loading branch information
Thomas Hellström committed Feb 1, 2022
1 parent ef6e871 commit 29b9702
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c
Original file line number Diff line number Diff line change
Expand Up @@ -436,11 +436,17 @@ __i915_ttm_move(struct ttm_buffer_object *bo,

if (!IS_ERR(fence))
goto out;
} else if (move_deps) {
int err = i915_deps_sync(move_deps, ctx);
} else {
int err = PTR_ERR(fence);

if (err == -EINTR || err == -ERESTARTSYS || err == -EAGAIN)
return fence;

if (err)
return ERR_PTR(err);
if (move_deps) {
err = i915_deps_sync(move_deps, ctx);
if (err)
return ERR_PTR(err);
}
}

/* Error intercept failed or no accelerated migration to start with */
Expand Down

0 comments on commit 29b9702

Please sign in to comment.