On Mon, Nov 7, 2022 at 2:26 PM Ville Syrjala
<[email protected]> wrote:
>
> From: Ville Syrjälä <[email protected]>
>
> Initialize on-stack modes with drm_mode_init() to guarantee
> no stack garbage in the list head, or that we aren't copying
> over another mode's list head.
>
> Based on the following cocci script, with manual fixups:
> @decl@
> identifier M;
> expression E;
> @@
> - struct drm_display_mode M = E;
> + struct drm_display_mode M;
>
> @@
> identifier decl.M;
> expression decl.E;
> statement S, S1;
> @@
> struct drm_display_mode M;
> ... when != S
> + drm_mode_init(&M, &E);
> +
> S1
>
> @@
> expression decl.E;
> @@
> - &*E
> + E
>
> Cc: Harry Wentland <[email protected]>
> Cc: Leo Li <[email protected]>
> Cc: Rodrigo Siqueira <[email protected]>
> Cc: Alex Deucher <[email protected]>
> Cc: [email protected]
> Reviewed-by: Harry Wentland <[email protected]>
> Signed-off-by: Ville Syrjälä <[email protected]>
Applied. Thanks!
Alex
> ---
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> 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 d9940a3c64dd..7fa4b61bc5bf 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -5685,7 +5685,7 @@ create_stream_for_sink(struct amdgpu_dm_connector
> *aconnector,
> const struct drm_connector_state *con_state =
> dm_state ? &dm_state->base : NULL;
> struct dc_stream_state *stream = NULL;
> - struct drm_display_mode mode = *drm_mode;
> + struct drm_display_mode mode;
> struct drm_display_mode saved_mode;
> struct drm_display_mode *freesync_mode = NULL;
> bool native_mode_found = false;
> @@ -5699,6 +5699,7 @@ create_stream_for_sink(struct amdgpu_dm_connector
> *aconnector,
>
> struct dc_sink *sink = NULL;
>
> + drm_mode_init(&mode, drm_mode);
> memset(&saved_mode, 0, sizeof(saved_mode));
>
> if (aconnector == NULL) {
> --
> 2.37.4
>