[Intel-gfx] [PATCH 4/4] drm/i915: Subsume intel_ctx_submit_request in to drm_i915_gem_request

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Thu Jan 29 07:42:03 PST 2015


On 01/15/2015 01:10 PM, Nick Hoath wrote:
>   void intel_execlists_retire_requests(struct intel_engine_cs *ring)
>   {
> -	struct intel_ctx_submit_request *req, *tmp;
> +	struct drm_i915_gem_request *req, *tmp;
>   	struct drm_i915_private *dev_priv = ring->dev->dev_private;
>   	unsigned long flags;
>   	struct list_head retired_list;
> @@ -776,7 +771,7 @@ void intel_execlists_retire_requests(struct intel_engine_cs *ring)
>   	spin_unlock_irqrestore(&ring->execlist_lock, flags);
>
>   	list_for_each_entry_safe(req, tmp, &retired_list, execlist_link) {
> -		struct intel_context *ctx = req->request->ctx;
> +		struct intel_context *ctx = req->ctx;
>   		struct drm_i915_gem_object *ctx_obj =
>   				ctx->engine[ring->id].state;
>
> @@ -784,9 +779,8 @@ void intel_execlists_retire_requests(struct intel_engine_cs *ring)
>   			intel_lr_context_unpin(ring, ctx);
>   		intel_runtime_pm_put(dev_priv);
>   		i915_gem_context_unreference(ctx);
> -		i915_gem_request_unreference(req->request);
> +		i915_gem_request_unreference(req);
>   		list_del(&req->execlist_link);

It looks like the this req unreference can be the last one in which case 
list_del explodes. I don't know if it was intended that it cannot be the 
last unreference, but I have a log which proves it can be. :)

Regards,

Tvrtko


More information about the Intel-gfx mailing list