2023-12-28 08:43:56

by Markus Elfring

[permalink] [raw]
Subject: [PATCH] platform/x86/amd/pmf: Return directly after a failed apmf_if_call() in apmf_sbios_heartbeat_notify()

From: Markus Elfring <[email protected]>
Date: Thu, 28 Dec 2023 09:30:54 +0100

The kfree() function was called in one case by
the apmf_sbios_heartbeat_notify() function during error handling
even if the passed variable contained a null pointer.
This issue was detected by using the Coccinelle software.

* Thus return directly after a call of the function “apmf_if_call” failed
at the beginning.

* Delete the label “out” which became unnecessary with this refactoring.

Signed-off-by: Markus Elfring <[email protected]>
---
drivers/platform/x86/amd/pmf/acpi.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/platform/x86/amd/pmf/acpi.c b/drivers/platform/x86/amd/pmf/acpi.c
index 4ec7957eb707..eb367e38c5ab 100644
--- a/drivers/platform/x86/amd/pmf/acpi.c
+++ b/drivers/platform/x86/amd/pmf/acpi.c
@@ -135,11 +135,9 @@ static void apmf_sbios_heartbeat_notify(struct work_struct *work)
dev_dbg(dev->dev, "Sending heartbeat to SBIOS\n");
info = apmf_if_call(dev, APMF_FUNC_SBIOS_HEARTBEAT, NULL);
if (!info)
- goto out;
+ return;

schedule_delayed_work(&dev->heart_beat, msecs_to_jiffies(dev->hb_interval * 1000));
-
-out:
kfree(info);
}

--
2.43.0



2024-01-02 12:38:13

by Hans de Goede

[permalink] [raw]
Subject: Re: [PATCH] platform/x86/amd/pmf: Return directly after a failed apmf_if_call() in apmf_sbios_heartbeat_notify()

Hi,

On 12/28/23 09:42, Markus Elfring wrote:
> From: Markus Elfring <[email protected]>
> Date: Thu, 28 Dec 2023 09:30:54 +0100
>
> The kfree() function was called in one case by
> the apmf_sbios_heartbeat_notify() function during error handling
> even if the passed variable contained a null pointer.
> This issue was detected by using the Coccinelle software.
>
> * Thus return directly after a call of the function “apmf_if_call” failed
> at the beginning.
>
> * Delete the label “out” which became unnecessary with this refactoring.
>
> Signed-off-by: Markus Elfring <[email protected]>

Thank you for your patch, I've applied this patch to my review-hans
branch:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans

Note it will show up in my review-hans branch once I've pushed my
local branch there, which might take a while.

Once I've run some tests on this branch the patches there will be
added to the platform-drivers-x86/for-next branch and eventually
will be included in the pdx86 pull-request to Linus for the next
merge-window.

Regards,

Hans



> ---
> drivers/platform/x86/amd/pmf/acpi.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/platform/x86/amd/pmf/acpi.c b/drivers/platform/x86/amd/pmf/acpi.c
> index 4ec7957eb707..eb367e38c5ab 100644
> --- a/drivers/platform/x86/amd/pmf/acpi.c
> +++ b/drivers/platform/x86/amd/pmf/acpi.c
> @@ -135,11 +135,9 @@ static void apmf_sbios_heartbeat_notify(struct work_struct *work)
> dev_dbg(dev->dev, "Sending heartbeat to SBIOS\n");
> info = apmf_if_call(dev, APMF_FUNC_SBIOS_HEARTBEAT, NULL);
> if (!info)
> - goto out;
> + return;
>
> schedule_delayed_work(&dev->heart_beat, msecs_to_jiffies(dev->hb_interval * 1000));
> -
> -out:
> kfree(info);
> }
>
> --
> 2.43.0
>
>