Re: [PATCH] PM / Domains: Fix memory leak on error path in pm_genpd_attach_cpuidle

From: Rafael J. Wysocki
Date: Sun Oct 14 2012 - 04:03:19 EST


Hi,

Thanks for spotting the problem and for the patch (it got corrupted
in transfer, so please see if the one below is what you meant).

I'll queue it up for v3.7, but I'm travelling now, so it may take a while.

Thanks,
Rafael


> From: jhbird.choi@xxxxxxxxxxx
> Subject: PM / Domains: Fix memory leak on error path in pm_genpd_attach_cpuidle
>
> If pm_genpd_attach_cpudidle failed we leak memory stored in 'cpu_data'.
>
> Signed-off-by: Jonghwan Choi <jhbird.choi@xxxxxxxxxxx>
> ---
> drivers/base/power/domain.c | 5 ++++-
> 1 files changed, 4 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c index c22b869..96b71b6 100644
> --- a/drivers/base/power/domain.c
> +++ b/drivers/base/power/domain.c
> @@ -1862,7 +1862,7 @@ int pm_genpd_attach_cpuidle(struct generic_pm_domain *genpd, int state)
> cpuidle_drv = cpuidle_driver_ref();
> if (!cpuidle_drv) {
> ret = -ENODEV;
> - goto out;
> + goto err_drv;
> }
> if (cpuidle_drv->state_count <= state) {
> ret = -EINVAL;
> @@ -1884,6 +1884,9 @@ int pm_genpd_attach_cpuidle(struct generic_pm_domain *genpd, int state)
>
> err:
> cpuidle_driver_unref();
> +
> + err_drv:
> + kfree(cpu_data);
> goto out;
> }
>
>

--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/