[PATCH] drm/amd/display: Fix memory leaks in S3 resume

Kazlauskas, Nicholas nicholas.kazlauskas at amd.com
Mon Dec 21 17:35:14 UTC 2020


Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas at amd.com>

Feel free to merge.

Regards,
Nicholas Kazlauskas

On 2020-12-21 11:45 a.m., Deucher, Alexander wrote:
> [AMD Official Use Only - Internal Distribution Only]
> 
> 
> This leak is still present.  Can we get this applied?
> 
> Acked-by: Alex Deucher <alexander.deucher at amd.com>
> ------------------------------------------------------------------------
> *From:* Wang, Chao-kai (Stylon) <Stylon.Wang at amd.com>
> *Sent:* Tuesday, November 10, 2020 2:49 AM
> *To:* amd-gfx at lists.freedesktop.org <amd-gfx at lists.freedesktop.org>
> *Cc:* Wang, Chao-kai (Stylon) <Stylon.Wang at amd.com>; Kazlauskas, 
> Nicholas <Nicholas.Kazlauskas at amd.com>; Deucher, Alexander 
> <Alexander.Deucher at amd.com>; Wentland, Harry <Harry.Wentland at amd.com>
> *Subject:* [PATCH] drm/amd/display: Fix memory leaks in S3 resume
> EDID parsing in S3 resume pushes new display modes
> to probed_modes list but doesn't consolidate to actual
> mode list. This creates a race condition when
> amdgpu_dm_connector_ddc_get_modes() re-initializes the
> list head without walking the list and results in  memory leak.
> 
> Signed-off-by: Stylon Wang <stylon.wang at amd.com>
> ---
>   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 0b6adf23d316..715e0bd489f8 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -2337,7 +2337,8 @@ void amdgpu_dm_update_connector_after_detect(
> 
>                           drm_connector_update_edid_property(connector,
>                                                              
> aconnector->edid);
> -                       drm_add_edid_modes(connector, aconnector->edid);
> +                       aconnector->num_modes = 
> drm_add_edid_modes(connector, aconnector->edid);
> +                       drm_connector_list_update(connector);
> 
>                           if (aconnector->dc_link->aux_mode)
>                                   
> drm_dp_cec_set_edid(&aconnector->dm_dp_aux.aux,
> -- 
> 2.25.1
> 



More information about the amd-gfx mailing list