drm/etnaviv: Optimize error handling in etnaviv_gem_new_userptr()
Refactor this function implementation so that the drm_gem_object_unreference_unlocked() function will only be called once in case of a failure according to the Linux coding style recommendation for centralized exiting of functions. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> [seanpaul tweaked subject] Signed-off-by: Sean Paul <seanpaul@chromium.org> Link: http://patchwork.freedesktop.org/patch/msgid/4af34ce6-62c6-7966-1ae3-0877d5ac909d@users.sourceforge.net
This commit is contained in:
committed by
Sean Paul
parent
8c6e618870
commit
d9a7ed770f
@ -913,15 +913,12 @@ int etnaviv_gem_new_userptr(struct drm_device *dev, struct drm_file *file,
|
||||
get_task_struct(current);
|
||||
|
||||
ret = etnaviv_gem_obj_add(dev, &etnaviv_obj->base);
|
||||
if (ret) {
|
||||
drm_gem_object_unreference_unlocked(&etnaviv_obj->base);
|
||||
return ret;
|
||||
}
|
||||
if (ret)
|
||||
goto unreference;
|
||||
|
||||
ret = drm_gem_handle_create(file, &etnaviv_obj->base, handle);
|
||||
|
||||
unreference:
|
||||
/* drop reference from allocate - handle holds it now */
|
||||
drm_gem_object_unreference_unlocked(&etnaviv_obj->base);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
Reference in New Issue
Block a user