Re: [PATCH] drm/i915: Fix memory leaks in scatterlist

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Feb 01, 2023 at 03:28:01PM -0800, Matt Atwood wrote:
> This patch fixes memory leaks on error escapes in i915_scatterlist.c
> 
> Fixes: c3bfba9a2225 ("drm/i915: Check for integer truncation on scatterlist creation")
> Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> Signed-off-by: Matt Atwood <matthew.s.atwood@xxxxxxxxx>
Reviewed-by: Harish Chegondi <harish.chegondi@xxxxxxxxx>
> ---
>  drivers/gpu/drm/i915/i915_scatterlist.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_scatterlist.c b/drivers/gpu/drm/i915/i915_scatterlist.c
> index 756289e43dff6..7c7a86921b1c7 100644
> --- a/drivers/gpu/drm/i915/i915_scatterlist.c
> +++ b/drivers/gpu/drm/i915/i915_scatterlist.c
> @@ -98,8 +98,10 @@ struct i915_refct_sgt *i915_rsgt_from_mm_node(const struct drm_mm_node *node,
>  	st = &rsgt->table;
>  	/* restricted by sg_alloc_table */
>  	if (WARN_ON(overflows_type(DIV_ROUND_UP_ULL(node->size, segment_pages),
> -				   unsigned int)))
> +				   unsigned int))) {
> +		i915_refct_sgt_put(rsgt);
>  		return ERR_PTR(-E2BIG);
> +	}
>  
>  	if (sg_alloc_table(st, DIV_ROUND_UP_ULL(node->size, segment_pages),
>  			   GFP_KERNEL)) {
> @@ -183,8 +185,10 @@ struct i915_refct_sgt *i915_rsgt_from_buddy_resource(struct ttm_resource *res,
>  	i915_refct_sgt_init(rsgt, size);
>  	st = &rsgt->table;
>  	/* restricted by sg_alloc_table */
> -	if (WARN_ON(overflows_type(PFN_UP(res->size), unsigned int)))
> +	if (WARN_ON(overflows_type(PFN_UP(res->size), unsigned int))) {
> +		i915_refct_sgt_put(rsgt);
>  		return ERR_PTR(-E2BIG);
> +	}
>  
>  	if (sg_alloc_table(st, PFN_UP(res->size), GFP_KERNEL)) {
>  		i915_refct_sgt_put(rsgt);
> -- 
> 2.39.1
> 



[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux