Commit 1197b4f2 authored by Mika Kuoppala's avatar Mika Kuoppala Committed by Daniel Vetter

drm/i915: Balance context pinning on reset cleanup

We pin when we submit to execlist queue. Balance
the pinning when the submitted queue is cleaned on reset.

Cc: Dave Gordon <david.s.gordon@intel.com>
Signed-off-by: default avatarMika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: default avatarThomas Daniel <thomas.daniel@intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 08e16dc8
...@@ -2656,6 +2656,10 @@ static void i915_gem_reset_ring_cleanup(struct drm_i915_private *dev_priv, ...@@ -2656,6 +2656,10 @@ static void i915_gem_reset_ring_cleanup(struct drm_i915_private *dev_priv,
execlist_link); execlist_link);
list_del(&submit_req->execlist_link); list_del(&submit_req->execlist_link);
intel_runtime_pm_put(dev_priv); intel_runtime_pm_put(dev_priv);
if (submit_req->ctx != ring->default_context)
intel_lr_context_unpin(ring, submit_req->ctx);
i915_gem_context_unreference(submit_req->ctx); i915_gem_context_unreference(submit_req->ctx);
kfree(submit_req); kfree(submit_req);
} }
......
...@@ -1751,6 +1751,7 @@ void intel_lr_context_free(struct intel_context *ctx) ...@@ -1751,6 +1751,7 @@ void intel_lr_context_free(struct intel_context *ctx)
intel_unpin_ringbuffer_obj(ringbuf); intel_unpin_ringbuffer_obj(ringbuf);
i915_gem_object_ggtt_unpin(ctx_obj); i915_gem_object_ggtt_unpin(ctx_obj);
} }
WARN_ON(ctx->engine[ring->id].unpin_count);
intel_destroy_ringbuffer_obj(ringbuf); intel_destroy_ringbuffer_obj(ringbuf);
kfree(ringbuf); kfree(ringbuf);
drm_gem_object_unreference(&ctx_obj->base); drm_gem_object_unreference(&ctx_obj->base);
......
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