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 >