mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
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: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200110183228.8199-6-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
58fa1760d0
commit
6fef8510a7
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user