On ke, 2016-04-27 at 15:30 +0300, Mika Kuoppala wrote: > Matthew Auld <[email protected]> writes: > > > > > [ text/plain ] > > Prefer a goto teardown path to do all the required cleanup. > > > > v2: > > (Joonas Lahtinen) > > - remove NULL assignments > > - rename goto labels > > > > Cc: Mika Kuoppala <[email protected]> > > Cc: Dave Gordon <[email protected]> > > Cc: Joonas Lahtinen <[email protected]> > > Signed-off-by: Matthew Auld <[email protected]> > Reviewed-by: Mika Kuoppala <[email protected]> >
Reviewed-by: Joonas Lahtinen <[email protected]> > > > > --- > > drivers/gpu/drm/i915/i915_gem_gtt.c | 25 ++++++++++++++++--------- > > 1 file changed, 16 insertions(+), 9 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c > > b/drivers/gpu/drm/i915/i915_gem_gtt.c > > index 0d666b3..87947ec 100644 > > --- a/drivers/gpu/drm/i915/i915_gem_gtt.c > > +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c > > @@ -866,6 +866,7 @@ static void gen8_free_page_tables(struct drm_device > > *dev, > > static int gen8_init_scratch(struct i915_address_space *vm) > > { > > struct drm_device *dev = vm->dev; > > + int ret; > > > > vm->scratch_page = alloc_scratch_page(dev); > > if (IS_ERR(vm->scratch_page)) > > @@ -873,24 +874,21 @@ static int gen8_init_scratch(struct > > i915_address_space *vm) > > > > vm->scratch_pt = alloc_pt(dev); > > if (IS_ERR(vm->scratch_pt)) { > > - free_scratch_page(dev, vm->scratch_page); > > - return PTR_ERR(vm->scratch_pt); > > + ret = PTR_ERR(vm->scratch_pt); > > + goto free_scratch_page; > > } > > > > vm->scratch_pd = alloc_pd(dev); > > if (IS_ERR(vm->scratch_pd)) { > > - free_pt(dev, vm->scratch_pt); > > - free_scratch_page(dev, vm->scratch_page); > > - return PTR_ERR(vm->scratch_pd); > > + ret = PTR_ERR(vm->scratch_pd); > > + goto free_pt; > > } > > > > if (USES_FULL_48BIT_PPGTT(dev)) { > > vm->scratch_pdp = alloc_pdp(dev); > > if (IS_ERR(vm->scratch_pdp)) { > > - free_pd(dev, vm->scratch_pd); > > - free_pt(dev, vm->scratch_pt); > > - free_scratch_page(dev, vm->scratch_page); > > - return PTR_ERR(vm->scratch_pdp); > > + ret = PTR_ERR(vm->scratch_pdp); > > + goto free_pd; > > } > > } > > > > @@ -900,6 +898,15 @@ static int gen8_init_scratch(struct i915_address_space > > *vm) > > gen8_initialize_pdp(vm, vm->scratch_pdp); > > > > return 0; > > + > > +free_pd: > > + free_pd(dev, vm->scratch_pd); > > +free_pt: > > + free_pt(dev, vm->scratch_pt); > > +free_scratch_page: > > + free_scratch_page(dev, vm->scratch_page); > > + > > + return ret; > > } > > > > static int gen8_ppgtt_notify_vgt(struct i915_hw_ppgtt *ppgtt, bool create) -- Joonas Lahtinen Open Source Technology Center Intel Corporation _______________________________________________ Intel-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
