Commit debe081a authored by jhbird.choi@samsung.com's avatar jhbird.choi@samsung.com Committed by Rafael J. Wysocki

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: default avatarJonghwan Choi <jhbird.choi@samsung.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 2978af54
...@@ -1862,7 +1862,7 @@ int pm_genpd_attach_cpuidle(struct generic_pm_domain *genpd, int state) ...@@ -1862,7 +1862,7 @@ int pm_genpd_attach_cpuidle(struct generic_pm_domain *genpd, int state)
cpuidle_drv = cpuidle_driver_ref(); cpuidle_drv = cpuidle_driver_ref();
if (!cpuidle_drv) { if (!cpuidle_drv) {
ret = -ENODEV; ret = -ENODEV;
goto out; goto err_drv;
} }
if (cpuidle_drv->state_count <= state) { if (cpuidle_drv->state_count <= state) {
ret = -EINVAL; ret = -EINVAL;
...@@ -1884,6 +1884,9 @@ int pm_genpd_attach_cpuidle(struct generic_pm_domain *genpd, int state) ...@@ -1884,6 +1884,9 @@ int pm_genpd_attach_cpuidle(struct generic_pm_domain *genpd, int state)
err: err:
cpuidle_driver_unref(); cpuidle_driver_unref();
err_drv:
kfree(cpu_data);
goto out; goto out;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment