The lookup is performed the same way in both branches of the "if" statement, so move the lookup to before the "if". err_cleanup case is adjusted accordingly. Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@xxxxxxxxxxxxx> --- .../arm/display/komeda/komeda_framebuffer.c | 23 +++++++------------ 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c index 6325b20e661d..b923e2b6c523 100644 --- a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c +++ b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c @@ -132,6 +132,7 @@ komeda_fb_create(struct drm_device *dev, struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd) { struct komeda_dev *mdev = dev->dev_private; + struct drm_gem_object *objs[4]; struct komeda_fb *kfb; const struct drm_format_info *info; int ret = 0, i; @@ -150,37 +151,29 @@ komeda_fb_create(struct drm_device *dev, struct drm_file *file, goto err_free; } + ret = drm_gem_fb_lookup(dev, file, mode_cmd, objs); + if (ret < 0) + goto err_free; + drm_helper_mode_fill_fb_struct(dev, &kfb->base, mode_cmd); info = kfb->base.format; if (kfb->base.modifier) { - struct drm_gem_object *objs[4]; - if (info->num_planes != 1) { DRM_DEBUG_KMS("AFBC requires exactly 1 plane.\n"); ret = -EINVAL; - goto err_free; + goto err_cleanup; } - ret = drm_gem_fb_lookup(dev, file, mode_cmd, objs); - if (ret < 0) - goto err_free; - ret = komeda_fb_afbc_size_check(kfb, info, objs, file, mode_cmd); for (i = 0; i < info->num_planes; ++i) kfb->base.obj[i] = objs[i]; } else { - struct drm_gem_object *objs[4]; - 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) - goto err_free; + goto err_cleanup; ret = komeda_fb_none_afbc_size_check(mdev, info, objs, file, mode_cmd); @@ -210,7 +203,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]); + drm_gem_object_put_unlocked(objs[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