Re: [PATCH 5.10 637/717] drm/amd/display: Fix memory leaks in S3 resume

From: Andre Tomt
Date: Mon Jan 04 2021 - 14:12:51 EST


On 28.12.2020 13:50, Greg Kroah-Hartman wrote:
From: Stylon Wang <stylon.wang@xxxxxxx>

commit a135a1b4c4db1f3b8cbed9676a40ede39feb3362 upstream.

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.

This commit is causing me problems on 5.10.4: when I turn off the display (a LG TV in this case), and turn it back on again later there is no video output and I get the following in the kernel log:

[ 8245.259628] [drm:dm_restore_drm_connector_state [amdgpu]] *ERROR* Restoring old state failed with -12

I've found another report on this commit as well:
https://bugzilla.kernel.org/show_bug.cgi?id=211033

And I suspect this is the same:
https://bugs.archlinux.org/task/69202

Reverting it from 5.10.4 makes things behave again.

Have not tested 5.4.86 or 5.11-rc.

I'm using a RX570 Polaris based card.