Commit aa394b0d authored by Sean Paul's avatar Sean Paul

drm: Clear state->acquire_ctx before leaving drm_atomic_helper_commit_duplicated_state()

drm_atomic_helper_commit_duplicated_state() sets state->acquire_ctx to
the context given in the argument and leaves it in state after it
quits. The lifetime of state and context are not guaranteed to be the
same, so we shouldn't leave that pointer hanging around. This patch
resets the context to NULL to avoid any oopses.

Changes in v2:
- Added to the set
Suggested-by: default avatarDaniel Vetter <daniel@ffwll.ch>
Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: default avatarSean Paul <seanpaul@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20181129150423.239081-1-sean@poorly.run
parent 2f690fad
...@@ -3229,7 +3229,7 @@ EXPORT_SYMBOL(drm_atomic_helper_suspend); ...@@ -3229,7 +3229,7 @@ EXPORT_SYMBOL(drm_atomic_helper_suspend);
int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state, int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
struct drm_modeset_acquire_ctx *ctx) struct drm_modeset_acquire_ctx *ctx)
{ {
int i; int i, ret;
struct drm_plane *plane; struct drm_plane *plane;
struct drm_plane_state *new_plane_state; struct drm_plane_state *new_plane_state;
struct drm_connector *connector; struct drm_connector *connector;
...@@ -3248,7 +3248,11 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state, ...@@ -3248,7 +3248,11 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
for_each_new_connector_in_state(state, connector, new_conn_state, i) for_each_new_connector_in_state(state, connector, new_conn_state, i)
state->connectors[i].old_state = connector->state; state->connectors[i].old_state = connector->state;
return drm_atomic_commit(state); ret = drm_atomic_commit(state);
state->acquire_ctx = NULL;
return ret;
} }
EXPORT_SYMBOL(drm_atomic_helper_commit_duplicated_state); EXPORT_SYMBOL(drm_atomic_helper_commit_duplicated_state);
......
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