OSDN Git Service

drm/tegra: gem: Cleanup tegra_bo_create_with_handle()
authorThierry Reding <treding@nvidia.com>
Thu, 16 Oct 2014 12:22:50 +0000 (14:22 +0200)
committerThierry Reding <treding@nvidia.com>
Thu, 13 Nov 2014 15:14:47 +0000 (16:14 +0100)
There is only a single location where the function needs to do cleanup.
Skip the error unwinding path and call the cleanup function directly
instead.

Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/gpu/drm/tegra/gem.c

index d86ded7..b1d778a 100644 (file)
@@ -166,23 +166,21 @@ struct tegra_bo *tegra_bo_create_with_handle(struct drm_file *file,
                                             unsigned int *handle)
 {
        struct tegra_bo *bo;
-       int ret;
+       int err;
 
        bo = tegra_bo_create(drm, size, flags);
        if (IS_ERR(bo))
                return bo;
 
-       ret = drm_gem_handle_create(file, &bo->gem, handle);
-       if (ret)
-               goto err;
+       err = drm_gem_handle_create(file, &bo->gem, handle);
+       if (err) {
+               tegra_bo_free_object(&bo->gem);
+               return ERR_PTR(err);
+       }
 
        drm_gem_object_unreference_unlocked(&bo->gem);
 
        return bo;
-
-err:
-       tegra_bo_free_object(&bo->gem);
-       return ERR_PTR(ret);
 }
 
 static struct tegra_bo *tegra_bo_import(struct drm_device *drm,