Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 355d7f37 authored by Chris Wright's avatar Chris Wright Committed by Eric Anholt
Browse files

drm/i915: fix up error path leak in i915_cmdbuffer



Commit 201361a5 introduces a leak when unwinding on error.  Reorder
unwind, and eliminate leak.

Cc: Eric Anholt <eric@anholt.net>
Cc: Keith Packard <keithp@keithp.com>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: default avatarChris Wright <chrisw@sous-sol.org>
[anholt: fixed uninit variable use introduced in original patch]
Signed-off-by: default avatarEric Anholt <eric@anholt.net>
parent d816f6ac
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -713,18 +713,18 @@ static int i915_cmdbuffer(struct drm_device *dev, void *data,
	mutex_unlock(&dev->struct_mutex);
	if (ret) {
		DRM_ERROR("i915_dispatch_cmdbuffer failed\n");
		goto fail_batch_free;
		goto fail_clip_free;
	}

	if (sarea_priv)
		sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv);

fail_batch_free:
	drm_free(batch_data, cmdbuf->sz, DRM_MEM_DRIVER);
fail_clip_free:
	drm_free(cliprects,
		 cmdbuf->num_cliprects * sizeof(struct drm_clip_rect),
		 DRM_MEM_DRIVER);
fail_batch_free:
	drm_free(batch_data, cmdbuf->sz, DRM_MEM_DRIVER);

	return ret;
}