[Intel-gfx] [PATCH] drm/i915/guc: Don't leak stage descriptor pool on init failure

Daniele Ceraolo Spurio daniele.ceraolospurio at intel.com
Tue Jun 5 17:38:38 UTC 2018



On 05/06/18 05:05, Michal Wajdeczko wrote:
> In case of failure during GuC clients creation, we forget to
> cleanup earlier pool allocation. Use proper teardown to fix that.
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Michal Winiarski <michal.winiarski at intel.com>

Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>

> ---
>   drivers/gpu/drm/i915/intel_guc_submission.c | 5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c b/drivers/gpu/drm/i915/intel_guc_submission.c
> index 133367a..23e9f20 100644
> --- a/drivers/gpu/drm/i915/intel_guc_submission.c
> +++ b/drivers/gpu/drm/i915/intel_guc_submission.c
> @@ -1157,7 +1157,7 @@ int intel_guc_submission_init(struct intel_guc *guc)
>   	WARN_ON(!guc_verify_doorbells(guc));
>   	ret = guc_clients_create(guc);
>   	if (ret)
> -		return ret;
> +		goto err_pool;
>   
>   	for_each_engine(engine, dev_priv, id) {
>   		guc->preempt_work[id].engine = engine;
> @@ -1166,6 +1166,9 @@ int intel_guc_submission_init(struct intel_guc *guc)
>   
>   	return 0;
>   
> +err_pool:
> +	guc_stage_desc_pool_destroy(guc);
> +	return ret;
>   }
>   
>   void intel_guc_submission_fini(struct intel_guc *guc)
> 


More information about the Intel-gfx mailing list