drm/i915: Fix memory leak in intel_dsi_init() error path
authorChristoph Jaeger <christophjaeger@linux.com>
Fri, 13 Jun 2014 19:51:22 +0000 (21:51 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 13 Jun 2014 20:08:15 +0000 (22:08 +0200)
intel_dsi_init() bails out without freeing the memory 'intel_dsi' and
'intel_connector' point to. Simply bail out before allocating memory.

Picked up by Coverity - CID 1222750.

Signed-off-by: Christoph Jaeger <christophjaeger@linux.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_dsi.c

index bd89de5..a9a7fb4 100644 (file)
@@ -675,6 +675,13 @@ void intel_dsi_init(struct drm_device *dev)
        if (!dev_priv->vbt.has_mipi)
                return;
 
+       if (IS_VALLEYVIEW(dev)) {
+               dev_priv->mipi_mmio_base = VLV_MIPI_BASE;
+       } else {
+               DRM_ERROR("Unsupported Mipi device to reg base");
+               return;
+       }
+
        intel_dsi = kzalloc(sizeof(*intel_dsi), GFP_KERNEL);
        if (!intel_dsi)
                return;
@@ -689,13 +696,6 @@ void intel_dsi_init(struct drm_device *dev)
        encoder = &intel_encoder->base;
        intel_dsi->attached_connector = intel_connector;
 
-       if (IS_VALLEYVIEW(dev)) {
-               dev_priv->mipi_mmio_base = VLV_MIPI_BASE;
-       } else {
-               DRM_ERROR("Unsupported Mipi device to reg base");
-               return;
-       }
-
        connector = &intel_connector->base;
 
        drm_encoder_init(dev, encoder, &intel_dsi_funcs, DRM_MODE_ENCODER_DSI);