diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-26 17:23:35 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-26 17:23:35 -0400 |
commit | 64b1cbaa1068f38994230df2aa0fee7033008399 (patch) | |
tree | 287d08359f68a00af62bdb68c786fa397a0b5575 /drivers/base | |
parent | f54c77dd9953241be8b63f9239facdde82b3eb18 (diff) | |
parent | 879dca019dc43a1622edca3e7dde644b14b5acc5 (diff) |
Merge tag 'pm+acpi-for-3.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull power management and ACPI fixes from Rafael J Wysocki:
- Fix for a memory leak in acpi_bind_one() from Jesper Juhl.
- Fix for an error code path memory leak in pm_genpd_attach_cpuidle()
from Jonghwan Choi.
- Fix for smp_processor_id() usage in preemptible code in powernow-k8
from Andreas Herrmann.
- Fix for a suspend-related memory leak in cpufreq stats from Xiaobing
Tu.
- Freezer fix for failure to clear PF_NOFREEZE along with PF_KTHREAD in
flush_old_exec() from Oleg Nesterov.
- acpi_processor_notify() fix from Alan Cox.
* tag 'pm+acpi-for-3.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
ACPI: missing break
freezer: exec should clear PF_NOFREEZE along with PF_KTHREAD
Fix memory leak in cpufreq stats.
cpufreq / powernow-k8: Remove usage of smp_processor_id() in preemptible code
PM / Domains: Fix memory leak on error path in pm_genpd_attach_cpuidle
ACPI: Fix memory leak in acpi_bind_one()
Diffstat (limited to 'drivers/base')
-rw-r--r-- | 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 c22b869245d9..96b71b6536d6 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) | |||
1862 | cpuidle_drv = cpuidle_driver_ref(); | 1862 | cpuidle_drv = cpuidle_driver_ref(); |
1863 | if (!cpuidle_drv) { | 1863 | if (!cpuidle_drv) { |
1864 | ret = -ENODEV; | 1864 | ret = -ENODEV; |
1865 | goto out; | 1865 | goto err_drv; |
1866 | } | 1866 | } |
1867 | if (cpuidle_drv->state_count <= state) { | 1867 | if (cpuidle_drv->state_count <= state) { |
1868 | ret = -EINVAL; | 1868 | ret = -EINVAL; |
@@ -1884,6 +1884,9 @@ int pm_genpd_attach_cpuidle(struct generic_pm_domain *genpd, int state) | |||
1884 | 1884 | ||
1885 | err: | 1885 | err: |
1886 | cpuidle_driver_unref(); | 1886 | cpuidle_driver_unref(); |
1887 | |||
1888 | err_drv: | ||
1889 | kfree(cpu_data); | ||
1887 | goto out; | 1890 | goto out; |
1888 | } | 1891 | } |
1889 | 1892 | ||