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

From: Oleksandr Natalenko
Date: Mon Jan 04 2021 - 15:41:38 EST


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:
> > 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
>
> 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!
>
> >
> > 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)