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@samsung.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>hifive-unleashed-5.1
parent
2978af545b
commit
debe081aaa
|
@ -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)
|
||||||
|
|
||||||
err:
|
err:
|
||||||
cpuidle_driver_unref();
|
cpuidle_driver_unref();
|
||||||
|
|
||||||
|
err_drv:
|
||||||
|
kfree(cpu_data);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue