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

Andre Tomt
2021-01-05T16:33:11Z

On 05.01.2021 07:54, Greg Kroah-Hartman 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@amd.com>
>>>
>>> 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.
>
> Can you test 5.11-rc to see if this issue is there as well?

Just did, and have the same issue on 5.11-rc2. Reverting it also solves
the problem on 5.11-rc2, as it does on 5.10.4

FWIW one easy way to reproduce seems to be unplugging and re-plugging
the HDMI.