aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiaojie Yuan <[email protected]>2017-07-04 14:21:58 +0800
committerAlex Deucher <[email protected]>2017-09-26 18:08:17 -0400
commita67297d4c8d0bfac39a0fa166e98dcf54db1d7c2 (patch)
tree945652cb09c571345bb17ddbc157a9474fe1ba5c
parentd7ec53d9dd0086644aa97d22463976b04b51307e (diff)
drm/amd/display: Fix misuse of plane state destroy helper
drm_plane_state is subclassed by dm_plane_state, so atomic driver should use __drm_atomic_helper_plane_destroy_state() to destroy a state. drm_atomic_helper_plane_destroy_state() frees drm_plane_state which is allocated inside dm_plane_state, this is problematic. Fixes: 95ae03a ("drm/amd/display: Create dm_plane_state.") Signed-off-by: Xiaojie Yuan <[email protected]> Reviewed-by: Andrey Grodzovsky <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
-rw-r--r--drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c
index 6f08fab1cce7..64cb635b4137 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c
@@ -1431,7 +1431,8 @@ void dm_drm_plane_destroy_state(struct drm_plane *plane,
dc_surface_release(dc_surface);
}
- drm_atomic_helper_plane_destroy_state(plane, state);
+ __drm_atomic_helper_plane_destroy_state(state);
+ kfree(dm_plane_state);
}
static const struct drm_plane_funcs dm_plane_funcs = {