aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2017-03-01 10:41:27 -0500
committerChris Wilson <chris@chris-wilson.co.uk>2017-03-01 12:57:16 -0500
commit9aceb5c15d84d4b960f5f80fba846c753554d092 (patch)
tree3b242b19a3d9b8271c55e2d92c31c7429ed88a39 /drivers/gpu
parent25b4620ee822d5f3c2deb3f1358e82763578788f (diff)
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: 24dbf51a5517 ("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
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 93371c2377b2..6d2597a4a45f 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -14313,7 +14313,7 @@ static int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
14313 if (INTEL_INFO(dev_priv)->gen < 4 && 14313 if (INTEL_INFO(dev_priv)->gen < 4 &&
14314 tiling != intel_fb_modifier_to_tiling(mode_cmd->modifier[0])) { 14314 tiling != intel_fb_modifier_to_tiling(mode_cmd->modifier[0])) {
14315 DRM_DEBUG("tiling_mode must match fb modifier exactly on gen2/3\n"); 14315 DRM_DEBUG("tiling_mode must match fb modifier exactly on gen2/3\n");
14316 return -EINVAL; 14316 goto err;
14317 } 14317 }
14318 14318
14319 stride_alignment = intel_fb_stride_alignment(dev_priv, 14319 stride_alignment = intel_fb_stride_alignment(dev_priv,
@@ -14358,7 +14358,7 @@ static int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
14358 if (INTEL_GEN(dev_priv) > 3) { 14358 if (INTEL_GEN(dev_priv) > 3) {
14359 DRM_DEBUG("unsupported pixel format: %s\n", 14359 DRM_DEBUG("unsupported pixel format: %s\n",
14360 drm_get_format_name(mode_cmd->pixel_format, &format_name)); 14360 drm_get_format_name(mode_cmd->pixel_format, &format_name));
14361 return -EINVAL; 14361 goto err;
14362 } 14362 }
14363 break; 14363 break;
14364 case DRM_FORMAT_ABGR8888: 14364 case DRM_FORMAT_ABGR8888:
@@ -14366,7 +14366,7 @@ static int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
14366 INTEL_GEN(dev_priv) < 9) { 14366 INTEL_GEN(dev_priv) < 9) {
14367 DRM_DEBUG("unsupported pixel format: %s\n", 14367 DRM_DEBUG("unsupported pixel format: %s\n",
14368 drm_get_format_name(mode_cmd->pixel_format, &format_name)); 14368 drm_get_format_name(mode_cmd->pixel_format, &format_name));
14369 return -EINVAL; 14369 goto err;
14370 } 14370 }
14371 break; 14371 break;
14372 case DRM_FORMAT_XBGR8888: 14372 case DRM_FORMAT_XBGR8888:
@@ -14375,14 +14375,14 @@ static int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
14375 if (INTEL_GEN(dev_priv) < 4) { 14375 if (INTEL_GEN(dev_priv) < 4) {
14376 DRM_DEBUG("unsupported pixel format: %s\n", 14376 DRM_DEBUG("unsupported pixel format: %s\n",
14377 drm_get_format_name(mode_cmd->pixel_format, &format_name)); 14377 drm_get_format_name(mode_cmd->pixel_format, &format_name));
14378 return -EINVAL; 14378 goto err;
14379 } 14379 }
14380 break; 14380 break;
14381 case DRM_FORMAT_ABGR2101010: 14381 case DRM_FORMAT_ABGR2101010:
14382 if (!IS_VALLEYVIEW(dev_priv) && !IS_CHERRYVIEW(dev_priv)) { 14382 if (!IS_VALLEYVIEW(dev_priv) && !IS_CHERRYVIEW(dev_priv)) {
14383 DRM_DEBUG("unsupported pixel format: %s\n", 14383 DRM_DEBUG("unsupported pixel format: %s\n",
14384 drm_get_format_name(mode_cmd->pixel_format, &format_name)); 14384 drm_get_format_name(mode_cmd->pixel_format, &format_name));
14385 return -EINVAL; 14385 goto err;
14386 } 14386 }
14387 break; 14387 break;
14388 case DRM_FORMAT_YUYV: 14388 case DRM_FORMAT_YUYV:
@@ -14392,13 +14392,13 @@ static int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
14392 if (INTEL_GEN(dev_priv) < 5) { 14392 if (INTEL_GEN(dev_priv) < 5) {
14393 DRM_DEBUG("unsupported pixel format: %s\n", 14393 DRM_DEBUG("unsupported pixel format: %s\n",
14394 drm_get_format_name(mode_cmd->pixel_format, &format_name)); 14394 drm_get_format_name(mode_cmd->pixel_format, &format_name));
14395 return -EINVAL; 14395 goto err;
14396 } 14396 }
14397 break; 14397 break;
14398 default: 14398 default:
14399 DRM_DEBUG("unsupported pixel format: %s\n", 14399 DRM_DEBUG("unsupported pixel format: %s\n",
14400 drm_get_format_name(mode_cmd->pixel_format, &format_name)); 14400 drm_get_format_name(mode_cmd->pixel_format, &format_name));
14401 return -EINVAL; 14401 goto err;
14402 } 14402 }
14403 14403
14404 /* FIXME need to adjust LINOFF/TILEOFF accordingly. */ 14404 /* FIXME need to adjust LINOFF/TILEOFF accordingly. */
@@ -14411,7 +14411,7 @@ static int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
14411 14411
14412 ret = intel_fill_fb_info(dev_priv, &intel_fb->base); 14412 ret = intel_fill_fb_info(dev_priv, &intel_fb->base);
14413 if (ret) 14413 if (ret)
14414 return ret; 14414 goto err;
14415 14415
14416 ret = drm_framebuffer_init(obj->base.dev, 14416 ret = drm_framebuffer_init(obj->base.dev,
14417 &intel_fb->base, 14417 &intel_fb->base,