drm/i915: Handle return value in intel_pin_and_fence_fb_obj, v2.
-EDEADLK has special meaning in atomic, but get_fence may call i915_find_fence_reg which can return -EDEADLK. This has special meaning in the atomic world, so convert the error to -EBUSY for this case. Changes since v1: - Add comment in the code. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
4740b0f2b8
commit
842315ee7e
|
@ -2397,7 +2397,18 @@ intel_pin_and_fence_fb_obj(struct drm_plane *plane,
|
|||
* a fence as the cost is not that onerous.
|
||||
*/
|
||||
ret = i915_gem_object_get_fence(obj);
|
||||
if (ret)
|
||||
if (ret == -EDEADLK) {
|
||||
/*
|
||||
* -EDEADLK means there are no free fences
|
||||
* no pending flips.
|
||||
*
|
||||
* This is propagated to atomic, but it uses
|
||||
* -EDEADLK to force a locking recovery, so
|
||||
* change the returned error to -EBUSY.
|
||||
*/
|
||||
ret = -EBUSY;
|
||||
goto err_unpin;
|
||||
} else if (ret)
|
||||
goto err_unpin;
|
||||
|
||||
i915_gem_object_pin_fence(obj);
|
||||
|
|
Loading…
Reference in a new issue