On 2/28/2025 10:06, Shen, Yijun wrote: > > Internal Use - Confidential >> -----Original Message----- >> From: Mario Limonciello <superm1@xxxxxxxxxx> >> Sent: Friday, February 28, 2025 1:03 AM >> To: Limonciello, Mario <mario.limonciello@xxxxxxx>; Shyam-sundar.S- >> k@xxxxxxx; hdegoede@xxxxxxxxxx; ilpo.jarvinen@xxxxxxxxxxxxxxx; >> Patil.Reddy@xxxxxxx >> Cc: Shen, Yijun <Yijun_Shen@xxxxxxxx>; Richard Gong >> <richgong@xxxxxxx>; platform-driver-x86@xxxxxxxxxxxxxxx >> Subject: [PATCH] platform/x86/amd/pmf: Initialize and clean up `cb_mutex` >> >> >> [EXTERNAL EMAIL] >> >> From: Mario Limonciello <mario.limonciello@xxxxxxx> >> >> `cb_mutex` was introduced in commit 9e0894d07072e >> ("platform/x86/amd/pmf: >> Enable Custom BIOS Inputs for PMF-TA") to prevent conccurrent access for >> BIOS inputs. It however isn't initialized and so on use it may lead to a NULL >> pointer dereference. >> >> Add code to initialize on probe and clean up on destroy. >> >> Reported-by: Yijun Shen <Yijun.Shen@xxxxxxxx> >> Cc: Richard Gong <richgong@xxxxxxx> >> Fixes: 9e0894d07072e ("platform/x86/amd/pmf: Enable Custom BIOS Inputs >> for PMF-TA") >> Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx> > > Verified the patch on the issued system, the issue is gone. > > Tested-By: Yijun Shen <Yijun_Shen@xxxxxxxx> > Thank you. Looks good. Acked-by: Shyam Sundar S K <Shyam-sundar.S-k@xxxxxxx> >> --- >> drivers/platform/x86/amd/pmf/core.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/drivers/platform/x86/amd/pmf/core.c >> b/drivers/platform/x86/amd/pmf/core.c >> index 764cc1fe90ae4..a2cb2d5544f5b 100644 >> --- a/drivers/platform/x86/amd/pmf/core.c >> +++ b/drivers/platform/x86/amd/pmf/core.c >> @@ -452,6 +452,7 @@ static int amd_pmf_probe(struct platform_device >> *pdev) >> >> mutex_init(&dev->lock); >> mutex_init(&dev->update_mutex); >> + mutex_init(&dev->cb_mutex); >> >> apmf_acpi_init(dev); >> platform_set_drvdata(pdev, dev); >> @@ -477,6 +478,7 @@ static void amd_pmf_remove(struct platform_device >> *pdev) >> amd_pmf_dbgfs_unregister(dev); >> mutex_destroy(&dev->lock); >> mutex_destroy(&dev->update_mutex); >> + mutex_destroy(&dev->cb_mutex); >> kfree(dev->buf); >> } >> >> -- >> 2.43.0 >