Skip to content

Commit 9aceb5c

Browse files
committed
drm/i915: Fix all intel_framebuffer_init failures to take the error path
No more direct return -EINVAL as we have to unwind the obj->framebuffer_references. Fixes: 24dbf51 ("drm/i915: struct_mutex is not required for allocating the framebuffer") Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20170301154128.2841-1-chris@chris-wilson.co.uk
1 parent 25b4620 commit 9aceb5c

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

drivers/gpu/drm/i915/intel_display.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14313,7 +14313,7 @@ static int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
1431314313
if (INTEL_INFO(dev_priv)->gen < 4 &&
1431414314
tiling != intel_fb_modifier_to_tiling(mode_cmd->modifier[0])) {
1431514315
DRM_DEBUG("tiling_mode must match fb modifier exactly on gen2/3\n");
14316-
return -EINVAL;
14316+
goto err;
1431714317
}
1431814318

1431914319
stride_alignment = intel_fb_stride_alignment(dev_priv,
@@ -14358,15 +14358,15 @@ static int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
1435814358
if (INTEL_GEN(dev_priv) > 3) {
1435914359
DRM_DEBUG("unsupported pixel format: %s\n",
1436014360
drm_get_format_name(mode_cmd->pixel_format, &format_name));
14361-
return -EINVAL;
14361+
goto err;
1436214362
}
1436314363
break;
1436414364
case DRM_FORMAT_ABGR8888:
1436514365
if (!IS_VALLEYVIEW(dev_priv) && !IS_CHERRYVIEW(dev_priv) &&
1436614366
INTEL_GEN(dev_priv) < 9) {
1436714367
DRM_DEBUG("unsupported pixel format: %s\n",
1436814368
drm_get_format_name(mode_cmd->pixel_format, &format_name));
14369-
return -EINVAL;
14369+
goto err;
1437014370
}
1437114371
break;
1437214372
case DRM_FORMAT_XBGR8888:
@@ -14375,14 +14375,14 @@ static int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
1437514375
if (INTEL_GEN(dev_priv) < 4) {
1437614376
DRM_DEBUG("unsupported pixel format: %s\n",
1437714377
drm_get_format_name(mode_cmd->pixel_format, &format_name));
14378-
return -EINVAL;
14378+
goto err;
1437914379
}
1438014380
break;
1438114381
case DRM_FORMAT_ABGR2101010:
1438214382
if (!IS_VALLEYVIEW(dev_priv) && !IS_CHERRYVIEW(dev_priv)) {
1438314383
DRM_DEBUG("unsupported pixel format: %s\n",
1438414384
drm_get_format_name(mode_cmd->pixel_format, &format_name));
14385-
return -EINVAL;
14385+
goto err;
1438614386
}
1438714387
break;
1438814388
case DRM_FORMAT_YUYV:
@@ -14392,13 +14392,13 @@ static int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
1439214392
if (INTEL_GEN(dev_priv) < 5) {
1439314393
DRM_DEBUG("unsupported pixel format: %s\n",
1439414394
drm_get_format_name(mode_cmd->pixel_format, &format_name));
14395-
return -EINVAL;
14395+
goto err;
1439614396
}
1439714397
break;
1439814398
default:
1439914399
DRM_DEBUG("unsupported pixel format: %s\n",
1440014400
drm_get_format_name(mode_cmd->pixel_format, &format_name));
14401-
return -EINVAL;
14401+
goto err;
1440214402
}
1440314403

1440414404
/* FIXME need to adjust LINOFF/TILEOFF accordingly. */
@@ -14411,7 +14411,7 @@ static int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
1441114411

1441214412
ret = intel_fill_fb_info(dev_priv, &intel_fb->base);
1441314413
if (ret)
14414-
return ret;
14414+
goto err;
1441514415

1441614416
ret = drm_framebuffer_init(obj->base.dev,
1441714417
&intel_fb->base,

0 commit comments

Comments
 (0)