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

Commit 39a3d570 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Laurent Pinchart
Browse files

drm: rcar-du: Clean up planes in the error paths of .atomic_commit()



When the .atomic_commit() handler fails, clean up planes previoulsy
prepared by drm_atomic_helper_prepare_planes() with a call to
drm_atomic_helper_cleanup_planes().

Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
parent 898a2f38
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -495,8 +495,10 @@ static int rcar_du_atomic_commit(struct drm_device *dev,

	/* Allocate the commit object. */
	commit = kzalloc(sizeof(*commit), GFP_KERNEL);
	if (commit == NULL)
		return -ENOMEM;
	if (commit == NULL) {
		ret = -ENOMEM;
		goto error;
	}

	INIT_WORK(&commit->work, rcar_du_atomic_work);
	commit->dev = dev;
@@ -519,7 +521,7 @@ static int rcar_du_atomic_commit(struct drm_device *dev,

	if (ret) {
		kfree(commit);
		return ret;
		goto error;
	}

	/* Swap the state, this is the point of no return. */
@@ -531,6 +533,10 @@ static int rcar_du_atomic_commit(struct drm_device *dev,
		rcar_du_atomic_complete(commit);

	return 0;

error:
	drm_atomic_helper_cleanup_planes(dev, state);
	return ret;
}

/* -----------------------------------------------------------------------------