2017-09-20 06:57:42

by Arvind Yadav

[permalink] [raw]
Subject: [PATCH] drivers/perf: arm_pmu_acpi: Release memory obtained by kasprintf

Free memory region, if arm_pmu_acpi_probe is not successful.

Signed-off-by: Arvind Yadav <[email protected]>
---
drivers/perf/arm_pmu_acpi.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/perf/arm_pmu_acpi.c b/drivers/perf/arm_pmu_acpi.c
index 0a9b787..3303dd8 100644
--- a/drivers/perf/arm_pmu_acpi.c
+++ b/drivers/perf/arm_pmu_acpi.c
@@ -235,6 +235,7 @@ int arm_pmu_acpi_probe(armpmu_init_fn init_fn)
ret = armpmu_register(pmu);
if (ret) {
pr_warn("Failed to register PMU for CPU%d\n", cpu);
+ kfree(pmu->name);
return ret;
}
}
--
1.9.1


2017-09-22 10:53:55

by Will Deacon

[permalink] [raw]
Subject: Re: [PATCH] drivers/perf: arm_pmu_acpi: Release memory obtained by kasprintf

On Wed, Sep 20, 2017 at 12:26:38PM +0530, Arvind Yadav wrote:
> Free memory region, if arm_pmu_acpi_probe is not successful.
>
> Signed-off-by: Arvind Yadav <[email protected]>
> ---
> drivers/perf/arm_pmu_acpi.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/perf/arm_pmu_acpi.c b/drivers/perf/arm_pmu_acpi.c
> index 0a9b787..3303dd8 100644
> --- a/drivers/perf/arm_pmu_acpi.c
> +++ b/drivers/perf/arm_pmu_acpi.c
> @@ -235,6 +235,7 @@ int arm_pmu_acpi_probe(armpmu_init_fn init_fn)
> ret = armpmu_register(pmu);
> if (ret) {
> pr_warn("Failed to register PMU for CPU%d\n", cpu);
> + kfree(pmu->name);
> return ret;
> }
> }

It's a bit weird that we bail out of the loop on the first failing CPU, but
you've not changed that behaviour so your patch looks fine in isolation:

Acked-by: Will Deacon <[email protected]>

Catalin: can you pick this up as a fix, please?

Will

2017-09-22 14:12:45

by Catalin Marinas

[permalink] [raw]
Subject: Re: [PATCH] drivers/perf: arm_pmu_acpi: Release memory obtained by kasprintf

On Fri, Sep 22, 2017 at 11:54:06AM +0100, Will Deacon wrote:
> On Wed, Sep 20, 2017 at 12:26:38PM +0530, Arvind Yadav wrote:
> > Free memory region, if arm_pmu_acpi_probe is not successful.
> >
> > Signed-off-by: Arvind Yadav <[email protected]>
> > ---
> > drivers/perf/arm_pmu_acpi.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/perf/arm_pmu_acpi.c b/drivers/perf/arm_pmu_acpi.c
> > index 0a9b787..3303dd8 100644
> > --- a/drivers/perf/arm_pmu_acpi.c
> > +++ b/drivers/perf/arm_pmu_acpi.c
> > @@ -235,6 +235,7 @@ int arm_pmu_acpi_probe(armpmu_init_fn init_fn)
> > ret = armpmu_register(pmu);
> > if (ret) {
> > pr_warn("Failed to register PMU for CPU%d\n", cpu);
> > + kfree(pmu->name);
> > return ret;
> > }
> > }
>
> It's a bit weird that we bail out of the loop on the first failing CPU, but
> you've not changed that behaviour so your patch looks fine in isolation:
>
> Acked-by: Will Deacon <[email protected]>
>
> Catalin: can you pick this up as a fix, please?

Applied. Thanks.

--
Catalin