From: Rodrigo Siqueira <[email protected]>

Reduce stack size pointed by clang:

amdgpu_dm/amdgpu_dm.c:8655:13: error: stack frame size (1048) exceeds limit 
(1024) in 'amdgpu_dm_atomic_commit_tail' [-Werror,-Wframe-larger-than]

Reviewed-by: Harry Wentland <[email protected]>
Acked-by: Alan Liu <[email protected]>
Signed-off-by: Rodrigo Siqueira <[email protected]>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 42fa632523a2..6372347edd3f 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -8714,13 +8714,12 @@ static void amdgpu_dm_atomic_commit_tail(struct 
drm_atomic_state *state)
                struct dm_connector_state *dm_new_con_state = 
to_dm_connector_state(new_con_state);
                struct dm_connector_state *dm_old_con_state = 
to_dm_connector_state(old_con_state);
                struct amdgpu_crtc *acrtc = 
to_amdgpu_crtc(dm_new_con_state->base.crtc);
-               struct dc_surface_update dummy_updates[MAX_SURFACES];
+               struct dc_surface_update *dummy_updates;
                struct dc_stream_update stream_update;
                struct dc_info_packet hdr_packet;
                struct dc_stream_status *status = NULL;
                bool abm_changed, hdr_changed, scaling_changed;
 
-               memset(&dummy_updates, 0, sizeof(dummy_updates));
                memset(&stream_update, 0, sizeof(stream_update));
 
                if (acrtc) {
@@ -8779,6 +8778,7 @@ static void amdgpu_dm_atomic_commit_tail(struct 
drm_atomic_state *state)
                 * Here we create an empty update on each plane.
                 * To fix this, DC should permit updating only stream 
properties.
                 */
+               dummy_updates = kzalloc(sizeof(struct dc_surface_update) * 
MAX_SURFACES, GFP_ATOMIC);
                for (j = 0; j < status->plane_count; j++)
                        dummy_updates[j].surface = status->plane_states[0];
 
@@ -8790,6 +8790,7 @@ static void amdgpu_dm_atomic_commit_tail(struct 
drm_atomic_state *state)
                                            dm_new_crtc_state->stream,
                                            &stream_update);
                mutex_unlock(&dm->dc_lock);
+               kfree(dummy_updates);
        }
 
        /**
-- 
2.34.1

Reply via email to