Commit cdd32563 authored by Lucas Stach's avatar Lucas Stach

drm/etnaviv: fold __etnaviv_gem_new into caller

This function has only one caller and it isn't expected that there will
be any more in the future. Folding this function into the caller is
helping the readability.
Signed-off-by: default avatarLucas Stach <l.stach@pengutronix.de>
Reviewed-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: default avatarChristian Gmeiner <christian.gmeiner@gmail.com>
parent 783c06cb
...@@ -643,8 +643,9 @@ static int etnaviv_gem_new_impl(struct drm_device *dev, u32 size, u32 flags, ...@@ -643,8 +643,9 @@ static int etnaviv_gem_new_impl(struct drm_device *dev, u32 size, u32 flags,
return 0; return 0;
} }
static struct drm_gem_object *__etnaviv_gem_new(struct drm_device *dev, /* convenience method to construct a GEM buffer object, and userspace handle */
u32 size, u32 flags) int etnaviv_gem_new_handle(struct drm_device *dev, struct drm_file *file,
u32 size, u32 flags, u32 *handle)
{ {
struct drm_gem_object *obj = NULL; struct drm_gem_object *obj = NULL;
int ret; int ret;
...@@ -665,7 +666,7 @@ static struct drm_gem_object *__etnaviv_gem_new(struct drm_device *dev, ...@@ -665,7 +666,7 @@ static struct drm_gem_object *__etnaviv_gem_new(struct drm_device *dev,
/* /*
* Our buffers are kept pinned, so allocating them * Our buffers are kept pinned, so allocating them
* from the MOVABLE zone is a really bad idea, and * from the MOVABLE zone is a really bad idea, and
* conflicts with CMA. See coments above new_inode() * conflicts with CMA. See comments above new_inode()
* why this is required _and_ expected if you're * why this is required _and_ expected if you're
* going to pin these pages. * going to pin these pages.
*/ */
...@@ -677,24 +678,6 @@ static struct drm_gem_object *__etnaviv_gem_new(struct drm_device *dev, ...@@ -677,24 +678,6 @@ static struct drm_gem_object *__etnaviv_gem_new(struct drm_device *dev,
if (ret) if (ret)
goto fail; goto fail;
return obj;
fail:
drm_gem_object_put_unlocked(obj);
return ERR_PTR(ret);
}
/* convenience method to construct a GEM buffer object, and userspace handle */
int etnaviv_gem_new_handle(struct drm_device *dev, struct drm_file *file,
u32 size, u32 flags, u32 *handle)
{
struct drm_gem_object *obj;
int ret;
obj = __etnaviv_gem_new(dev, size, flags);
if (IS_ERR(obj))
return PTR_ERR(obj);
ret = etnaviv_gem_obj_add(dev, obj); ret = etnaviv_gem_obj_add(dev, obj);
if (ret < 0) { if (ret < 0) {
drm_gem_object_put_unlocked(obj); drm_gem_object_put_unlocked(obj);
...@@ -704,6 +687,7 @@ int etnaviv_gem_new_handle(struct drm_device *dev, struct drm_file *file, ...@@ -704,6 +687,7 @@ int etnaviv_gem_new_handle(struct drm_device *dev, struct drm_file *file,
ret = drm_gem_handle_create(file, obj, handle); ret = drm_gem_handle_create(file, obj, handle);
/* drop reference from allocate - handle holds it now */ /* drop reference from allocate - handle holds it now */
fail:
drm_gem_object_put_unlocked(obj); drm_gem_object_put_unlocked(obj);
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment