Internal Use - Confidential +AD4- -----Original Message----- +AD4- From: Mario Limonciello +ADw-superm1+AEA-kernel.org+AD4- +AD4- Sent: Friday, February 28, 2025 1:03 AM +AD4- To: Limonciello, Mario +ADw-mario.limonciello+AEA-amd.com+AD4AOw- Shyam-sundar.S- +AD4- k+AEA-amd.com+ADs- hdegoede+AEA-redhat.com+ADs- ilpo.jarvinen+AEA-linux.intel.com+ADs- +AD4- Patil.Reddy+AEA-amd.com +AD4- Cc: Shen, Yijun +ADw-Yijun+AF8-Shen+AEA-Dell.com+AD4AOw- Richard Gong +AD4- +ADw-richgong+AEA-amd.com+AD4AOw- platform-driver-x86+AEA-vger.kernel.org +AD4- Subject: +AFs-PATCH+AF0- platform/x86/amd/pmf: Initialize and clean up +AGA-cb+AF8-mutex+AGA- +AD4- +AD4- +AD4- +AFs-EXTERNAL EMAIL+AF0- +AD4- +AD4- From: Mario Limonciello +ADw-mario.limonciello+AEA-amd.com+AD4- +AD4- +AD4- +AGA-cb+AF8-mutex+AGA- was introduced in commit 9e0894d07072e +AD4- (+ACI-platform/x86/amd/pmf: +AD4- Enable Custom BIOS Inputs for PMF-TA+ACI-) to prevent conccurrent access for +AD4- BIOS inputs. It however isn't initialized and so on use it may lead to a NULL +AD4- pointer dereference. +AD4- +AD4- Add code to initialize on probe and clean up on destroy. +AD4- +AD4- Reported-by: Yijun Shen +ADw-Yijun.Shen+AEA-dell.com+AD4- +AD4- Cc: Richard Gong +ADw-richgong+AEA-amd.com+AD4- +AD4- Fixes: 9e0894d07072e (+ACI-platform/x86/amd/pmf: Enable Custom BIOS Inputs +AD4- for PMF-TA+ACI-) +AD4- Signed-off-by: Mario Limonciello +ADw-mario.limonciello+AEA-amd.com+AD4- Verified the patch on the issued system, the issue is gone. Tested-By: Yijun Shen +ADw-Yijun+AF8-Shen+AEA-Dell.com+AD4- +AD4- --- +AD4- drivers/platform/x86/amd/pmf/core.c +AHw- 2 +-+- +AD4- 1 file changed, 2 insertions(+-) +AD4- +AD4- diff --git a/drivers/platform/x86/amd/pmf/core.c +AD4- b/drivers/platform/x86/amd/pmf/core.c +AD4- index 764cc1fe90ae4..a2cb2d5544f5b 100644 +AD4- --- a/drivers/platform/x86/amd/pmf/core.c +AD4- +-+-+- b/drivers/platform/x86/amd/pmf/core.c +AD4- +AEAAQA- -452,6 +-452,7 +AEAAQA- static int amd+AF8-pmf+AF8-probe(struct platform+AF8-device +AD4- +ACo-pdev) +AD4- +AD4- mutex+AF8-init(+ACY-dev-+AD4-lock)+ADs- +AD4- mutex+AF8-init(+ACY-dev-+AD4-update+AF8-mutex)+ADs- +AD4- +- mutex+AF8-init(+ACY-dev-+AD4-cb+AF8-mutex)+ADs- +AD4- +AD4- apmf+AF8-acpi+AF8-init(dev)+ADs- +AD4- platform+AF8-set+AF8-drvdata(pdev, dev)+ADs- +AD4- +AEAAQA- -477,6 +-478,7 +AEAAQA- static void amd+AF8-pmf+AF8-remove(struct platform+AF8-device +AD4- +ACo-pdev) +AD4- amd+AF8-pmf+AF8-dbgfs+AF8-unregister(dev)+ADs- +AD4- mutex+AF8-destroy(+ACY-dev-+AD4-lock)+ADs- +AD4- mutex+AF8-destroy(+ACY-dev-+AD4-update+AF8-mutex)+ADs- +AD4- +- mutex+AF8-destroy(+ACY-dev-+AD4-cb+AF8-mutex)+ADs- +AD4- kfree(dev-+AD4-buf)+ADs- +AD4- +AH0- +AD4- +AD4- -- +AD4- 2.43.0