[Intel-gfx] [PATCH] drm/i915: Cleanup error paths through eb_lookup_vma()
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Tue Sep 12 15:21:06 UTC 2017
On 12/09/2017 16:07, Chris Wilson wrote:
> Following the simplification to a single lookup loop in commit
> 170fa29b14fa ("drm/i915: Simplify eb_lookup_vmas()") and commit
> d1b48c1e7184 ("drm/i915: Replace execbuf vma ht with an idr"), we can go
> one setup further and reorder the error paths so that the state of the
> local variable obj is always known to the compiler and doesn't need the
> uninitialized_var markup to squelch a compiler warning.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> ---
> drivers/gpu/drm/i915/i915_gem_execbuffer.c | 11 ++++-------
> 1 file changed, 4 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
> index 7687483ff218..214a850b4b3c 100644
> --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
> +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
> @@ -679,7 +679,7 @@ static int eb_select_context(struct i915_execbuffer *eb)
> static int eb_lookup_vmas(struct i915_execbuffer *eb)
> {
> struct radix_tree_root *handles_vma = &eb->ctx->handles_vma;
> - struct drm_i915_gem_object *uninitialized_var(obj);
> + struct drm_i915_gem_object *obj;
> unsigned int i;
> int err;
>
> @@ -725,19 +725,17 @@ static int eb_lookup_vmas(struct i915_execbuffer *eb)
> goto err_obj;
> }
>
> + /* transfer ref to ctx */
> vma->open_count++;
> list_add(&lut->obj_link, &obj->lut_list);
> list_add(&lut->ctx_link, &eb->ctx->handles_list);
> lut->ctx = eb->ctx;
> lut->handle = handle;
>
> - /* transfer ref to ctx */
> - obj = NULL;
> -
> add_vma:
> err = eb_add_vma(eb, i, vma);
> if (unlikely(err))
> - goto err_obj;
> + goto err_vma;
>
> GEM_BUG_ON(vma != eb->vma[i]);
> GEM_BUG_ON(vma->exec_flags != &eb->flags[i]);
> @@ -766,8 +764,7 @@ static int eb_lookup_vmas(struct i915_execbuffer *eb)
> return eb_reserve(eb);
>
> err_obj:
> - if (obj)
> - i915_gem_object_put(obj);
> + i915_gem_object_put(obj);
> err_vma:
> eb->vma[i] = NULL;
> return err;
>
Looks good to me.
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Regards,
Tvrtko
More information about the Intel-gfx
mailing list