Commit 6fef8510 authored by Ville Syrjälä's avatar Ville Syrjälä

drm/i915: Cleanup properly if the implicit fence setup fails

We've already pinned the vma and fence by the time we try to
deal with implicit fencing. Properly unpin the vma and fence
if the fence setup fails instead of just bailing straight out
from .prepare_fb(). As can be expected
drm_atomic_helper_prepare_planes() will not call .cleanup_fb()
for the plane whose .prepare_fb() failed so we must do the
cleanup ourself.

v2: Rebase
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200110183228.8199-6-ville.syrjala@linux.intel.comReviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
parent 58fa1760
......@@ -15803,7 +15803,7 @@ intel_prepare_plane_fb(struct drm_plane *_plane,
false, I915_FENCE_TIMEOUT,
GFP_KERNEL);
if (ret < 0)
return ret;
goto unpin_fb;
fence = dma_resv_get_excl_rcu(obj->base.resv);
if (fence) {
......@@ -15830,6 +15830,11 @@ intel_prepare_plane_fb(struct drm_plane *_plane,
}
return 0;
unpin_fb:
intel_plane_unpin_fb(new_plane_state);
return ret;
}
/**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment