[PATCH] drm/amd/display: Fix memory leaks in S3 resume
Harry Wentland
harry.wentland at amd.com
Tue Nov 10 14:27:26 UTC 2020
On 2020-11-10 2:49 a.m., Stylon Wang wrote:
> 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>
Looks reasonable to me but haven't had a chance to understand whether
this is the best solution.
Acked-by: Harry Wentland <harry.wentland at amd.com>
Harry
> ---
> 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,
>
More information about the amd-gfx
mailing list