linux-stable/drivers/cpuidle
Anel Orazgaliyeva e577924b70 cpuidle: Fix kobject memory leaks in error paths
[ Upstream commit e5f5a66c9a ]

Commit c343bf1ba5 ("cpuidle: Fix three reference count leaks")
fixes the cleanup of kobjects; however, it removes kfree() calls
altogether, leading to memory leaks.

Fix those and also defer the initialization of dev->kobj_dev until
after the error check, so that we do not end up with a dangling
pointer.

Fixes: c343bf1ba5 ("cpuidle: Fix three reference count leaks")
Signed-off-by: Anel Orazgaliyeva <anelkz@amazon.de>
Suggested-by: Aman Priyadarshi <apeureka@amazon.de>
[ rjw: Subject edits ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-11-17 09:48:36 +01:00
..
governors cpuidle: teo: Avoid using "early hits" incorrectly 2020-02-05 21:22:52 +00:00
Kconfig cpuidle: add haltpoll governor 2019-07-30 17:27:37 +02:00
Kconfig.arm ARM: psci: cpuidle: Enable PSCI CPUidle driver 2019-08-09 17:51:39 +01:00
Kconfig.mips treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Kconfig.powerpc treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile Power management updates for 5.4-rc1 2019-09-17 19:15:14 -07:00
coupled.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
cpuidle-arm.c ARM: cpuidle: Remove overzealous error logging 2019-08-09 17:51:39 +01:00
cpuidle-at91.c
cpuidle-big_little.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cpuidle-calxeda.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
cpuidle-clps711x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
cpuidle-cps.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
cpuidle-exynos.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cpuidle-haltpoll.c cpuidle: haltpoll: Take 'idle=' override into account 2019-10-22 11:43:17 +02:00
cpuidle-kirkwood.c
cpuidle-mvebu-v7.c
cpuidle-powernv.c powernv/cpuidle: Use parsed device tree values for cpuidle_init 2018-07-31 19:56:44 +10:00
cpuidle-psci.c PSCI: cpuidle: Refactor CPU suspend power_state parameter handling 2019-08-09 17:51:39 +01:00
cpuidle-pseries.c powerpc/pseries/cpuidle: Fix preempt warning 2018-12-04 19:45:01 +11:00
cpuidle-ux500.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cpuidle-zynq.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
cpuidle.c cpuidle: Fixup IRQ state 2020-09-09 19:12:21 +02:00
cpuidle.h cpuidle: allow governor switch on cpuidle_register_driver() 2019-09-11 17:36:30 +02:00
driver.c cpuidle: Do not unset the driver if it is there already 2019-12-17 19:56:20 +01:00
dt_idle_states.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
dt_idle_states.h
governor.c cpuidle: allow governor switch on cpuidle_register_driver() 2019-09-11 17:36:30 +02:00
poll_state.c cpuidle: add poll_limit_ns to cpuidle_device structure 2019-07-30 17:27:37 +02:00
sysfs.c cpuidle: Fix kobject memory leaks in error paths 2021-11-17 09:48:36 +01:00