Thread (748 messages) 748 messages, 17 authors, 2021-01-05

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

From: Oleksandr Natalenko <hidden>
Date: 2021-01-04 20:41:22
Also in: lkml

On Mon, Jan 04, 2021 at 09:10:17PM +0100, Oleksandr Natalenko wrote:
On Mon, Jan 04, 2021 at 08:04:08PM +0100, Andre Tomt wrote:
quoted
On 28.12.2020 13:50, Greg Kroah-Hartman wrote:
quoted
From: Stylon Wang <redacted>

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
Uh, it seems you've just saved me a ton of gray hair. I have the very
same issue and I'm going to revert this patch now in order to check
whether it makes any difference.
Confirmed, reverting this patch makes my monitor light back after
turning off/on.

Also, during testing, I've noticed that with the stock v5.10.4 kernel
once reboot sequence is initiated and xorg gets killed, the monitor also
lights back and shows the console.

My HW:

0a:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X] (rev c7)
Thanks!
quoted
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.
-- 
  Oleksandr Natalenko (post-factum)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help