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

From: Oleksandr Natalenko
Date: Mon Jan 04 2021 - 15:11:03 EST


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.

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)