Re: [PATCH] platform/x86/amd/pmf: Fix a suspend hang on Framework 13

From: Hans de Goede
Date: Sun Feb 18 2024 - 05:26:47 EST


Hi,

On 2/17/24 01:52, Mario Limonciello wrote:
> The buffer is cleared in the suspend handler but used in
> the delayed work for amd_pmf_get_metrics().
>
> Stop clearing it to fix the hang.
>
> Reported-by: Trolli Schmittlauch <t.schmittlauch@xxxxxxxxxx>
> Closes: https://lore.kernel.org/regressions/ed2226ff-257b-4cfd-afd6-bf3be9785474@localhost/
> Closes: https://community.frame.work/t/kernel-6-8-rc-system-freezes-after-resuming-from-suspend-reproducers-wanted/45381
> Fixes: 2b3a7f06caaf ("platform/x86/amd/pmf: Change return type of amd_pmf_set_dram_addr()")
> Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx>

Ugh, I should have caught this during review. I especially asked
for the alloc parameter to amd_pmf_set_dram_addr() to be added
for this. Ah well ...

Thanks, patch looks good to me:

Reviewed-by: Hans de Goede <hdegoede@xxxxxxxxxx>

Regards,

Hans



> ---
> drivers/platform/x86/amd/pmf/core.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/drivers/platform/x86/amd/pmf/core.c b/drivers/platform/x86/amd/pmf/core.c
> index 853158933510..4f734e049f4a 100644
> --- a/drivers/platform/x86/amd/pmf/core.c
> +++ b/drivers/platform/x86/amd/pmf/core.c
> @@ -299,8 +299,6 @@ static int amd_pmf_suspend_handler(struct device *dev)
> if (pdev->smart_pc_enabled)
> cancel_delayed_work_sync(&pdev->pb_work);
>
> - kfree(pdev->buf);
> -
> return 0;
> }
>