]> www.infradead.org Git - users/hch/misc.git/commitdiff
ACPI: processor: idle: Fix memory leak when register cpuidle device failed
authorHuisong Li <lihuisong@huawei.com>
Mon, 28 Jul 2025 07:06:11 +0000 (15:06 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 22 Aug 2025 19:26:26 +0000 (21:26 +0200)
The cpuidle device's memory is leaked when cpuidle device registration
fails in acpi_processor_power_init().  Free it as appropriate.

Fixes: 3d339dcbb56d ("cpuidle / ACPI : move cpuidle_device field out of the acpi_processor_power structure")
Signed-off-by: Huisong Li <lihuisong@huawei.com>
Link: https://patch.msgid.link/20250728070612.1260859-2-lihuisong@huawei.com
[ rjw: Changed the order of the new statements, added empty line after if () ]
[ rjw: Changelog edits ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/processor_idle.c

index 2c2dc559e0f8def8469f3b94f2d7935f2cdb78a4..d0fc045a8d310c535dd78ae5b6e8488a2a619ed1 100644 (file)
@@ -1405,6 +1405,9 @@ int acpi_processor_power_init(struct acpi_processor *pr)
                if (retval) {
                        if (acpi_processor_registered == 0)
                                cpuidle_unregister_driver(&acpi_idle_driver);
+
+                       per_cpu(acpi_cpuidle_device, pr->id) = NULL;
+                       kfree(dev);
                        return retval;
                }
                acpi_processor_registered++;