projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
2978af5
)
PM / Domains: Fix memory leak on error path in pm_genpd_attach_cpuidle
author
[email protected]
<
[email protected]
>
Mon, 22 Oct 2012 22:54:38 +0000
(
00:54
+0200)
committer
Rafael J. Wysocki
<
[email protected]
>
Mon, 22 Oct 2012 22:54:38 +0000
(
00:54
+0200)
If pm_genpd_attach_cpudidle failed we leak memory stored in 'cpu_data'.
Signed-off-by: Jonghwan Choi <
[email protected]
>
Signed-off-by: Rafael J. Wysocki <
[email protected]
>
drivers/base/power/domain.c
patch
|
blob
|
history
diff --git
a/drivers/base/power/domain.c
b/drivers/base/power/domain.c
index c22b869245d9498e7052fdc42ceacf3aaa4e332e..96b71b6536d61cef381dab119533b4a0b13f542e 100644
(file)
--- 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;
}