Use less code to handle errors. Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@xxxxxxxxxxxxx> --- .../arm/display/komeda/komeda_framebuffer.c | 32 ++++++++----------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c index cc9dc8588e8d..6325b20e661d 100644 --- a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c +++ b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c @@ -146,8 +146,8 @@ komeda_fb_create(struct drm_device *dev, struct drm_file *file, if (!kfb->format_caps) { DRM_DEBUG_KMS("FMT %x is not supported.\n", mode_cmd->pixel_format); - kfree(kfb); - return ERR_PTR(-EINVAL); + ret = -EINVAL; + goto err_free; } drm_helper_mode_fill_fb_struct(dev, &kfb->base, mode_cmd); @@ -158,15 +158,13 @@ komeda_fb_create(struct drm_device *dev, struct drm_file *file, if (info->num_planes != 1) { DRM_DEBUG_KMS("AFBC requires exactly 1 plane.\n"); - kfree(kfb); - return ERR_PTR(-EINVAL); + ret = -EINVAL; + goto err_free; } ret = drm_gem_fb_lookup(dev, file, mode_cmd, objs); - if (ret < 0) { - kfree(kfb); - return ERR_PTR(ret); - } + if (ret < 0) + goto err_free; ret = komeda_fb_afbc_size_check(kfb, info, objs, file, mode_cmd); @@ -175,16 +173,14 @@ komeda_fb_create(struct drm_device *dev, struct drm_file *file, } else { struct drm_gem_object *objs[4]; - if (komeda_fb_check_src_coords(kfb, 0, 0, kfb->base.width, - kfb->base.height)) { - kfree(kfb); - return ERR_PTR(-EINVAL); - } + ret = komeda_fb_check_src_coords(kfb, 0, 0, kfb->base.width, + kfb->base.height); + if (ret) + goto err_free; + ret = drm_gem_fb_lookup(dev, file, mode_cmd, objs); - if (ret < 0) { - kfree(kfb); - return ERR_PTR(ret); - } + if (ret < 0) + goto err_free; ret = komeda_fb_none_afbc_size_check(mdev, info, objs, file, mode_cmd); @@ -215,7 +211,7 @@ komeda_fb_create(struct drm_device *dev, struct drm_file *file, err_cleanup: for (i = 0; i < kfb->base.format->num_planes; i++) drm_gem_object_put_unlocked(kfb->base.obj[i]); - +err_free: kfree(kfb); return ERR_PTR(ret); } -- 2.17.1 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel