[PATCH] drm/xe: Fix bo leak in intel_fb_bo_framebuffer_init

Rodrigo Vivi rodrigo.vivi at intel.com
Thu Mar 21 19:56:23 UTC 2024


On Thu, Mar 21, 2024 at 03:56:44PM +0100, Maarten Lankhorst wrote:
> Add a reference to bo after all error paths, to prevent leaking a bo
> ref.
> 
> Return 0 to clarify that this is the success path.
> 
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> Fixes: 44e694958b95 ("drm/xe/display: Implement display support")
> Cc: <stable at vger.kernel.org> # v6.8+
> ---
>  drivers/gpu/drm/xe/display/intel_fb_bo.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/display/intel_fb_bo.c b/drivers/gpu/drm/xe/display/intel_fb_bo.c
> index b21da7b745a5..7262bbca9baf 100644
> --- a/drivers/gpu/drm/xe/display/intel_fb_bo.c
> +++ b/drivers/gpu/drm/xe/display/intel_fb_bo.c
> @@ -27,8 +27,6 @@ int intel_fb_bo_framebuffer_init(struct intel_framebuffer *intel_fb,
>  	struct drm_i915_private *i915 = to_i915(bo->ttm.base.dev);
>  	int ret;
>  
> -	xe_bo_get(bo);
> -
>  	ret = ttm_bo_reserve(&bo->ttm, true, false, NULL);
>  	if (ret)
>  		return ret;
> @@ -48,7 +46,8 @@ int intel_fb_bo_framebuffer_init(struct intel_framebuffer *intel_fb,
>  	}
>  	ttm_bo_unreserve(&bo->ttm);
>  
> -	return ret;
> +	xe_bo_get(bo);

wouldn't be safer to keep the get in the beginning of everything else
and then if in an error path you xe_bo_put(bo); ?!

> +	return 0;
>  }
>  
>  struct xe_bo *intel_fb_bo_lookup_valid_bo(struct drm_i915_private *i915,
> -- 
> 2.43.0
> 


More information about the Intel-xe mailing list