Commit f65c18c0 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Rob Clark

drm/msm/atomic: 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>
Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
parent 1efb92a3
...@@ -213,8 +213,10 @@ int msm_atomic_commit(struct drm_device *dev, ...@@ -213,8 +213,10 @@ int msm_atomic_commit(struct drm_device *dev,
return ret; return ret;
c = commit_init(state); c = commit_init(state);
if (!c) if (!c) {
return -ENOMEM; ret = -ENOMEM;
goto error;
}
/* /*
* Figure out what crtcs we have: * Figure out what crtcs we have:
...@@ -247,7 +249,7 @@ int msm_atomic_commit(struct drm_device *dev, ...@@ -247,7 +249,7 @@ int msm_atomic_commit(struct drm_device *dev,
ret = start_atomic(dev->dev_private, c->crtc_mask); ret = start_atomic(dev->dev_private, c->crtc_mask);
if (ret) { if (ret) {
kfree(c); kfree(c);
return ret; goto error;
} }
/* /*
...@@ -291,4 +293,8 @@ int msm_atomic_commit(struct drm_device *dev, ...@@ -291,4 +293,8 @@ int msm_atomic_commit(struct drm_device *dev,
complete_commit(c); complete_commit(c);
return 0; return 0;
error:
drm_atomic_helper_cleanup_planes(dev, state);
return ret;
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment