powercap: intel_rapl: Fix memory leak in rapl_add_package_cpuslocked()

JIRA: https://issues.redhat.com/browse/RHEL-192478

commit bfc7d93bc5e12288e5dc6bb54260f68cdf5a5c47
Author: Sumeet Pawnikar <sumeet4linux@gmail.com>
Date:   Fri May 15 23:56:16 2026 +0530

    powercap: intel_rapl: Fix memory leak in rapl_add_package_cpuslocked()

    When topology_physical_package_id()/topology_logical_die_id() returns
    a negative value, rapl_add_package_cpuslocked() returns ERR_PTR(-EINVAL)
    directly without freeing the rapl_package structure that was just
    allocated by kzalloc_obj(), leaking memory on every failed package
    addition.

    Use the existing err_free_package label so that the allocation is
    released on the error path.

    Signed-off-by: Sumeet Pawnikar <sumeet4linux@gmail.com>
    Link: https://patch.msgid.link/20260515182616.227707-1-sumeet4linux@gmail.com
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

(cherry picked from commit bfc7d93bc5e12288e5dc6bb54260f68cdf5a5c47)
Assisted-by: Patchpal
Signed-off-by: David Arcari <darcari@redhat.com>
This commit is contained in:
David Arcari
2026-07-13 15:11:44 -04:00
parent 175df45e08
commit 25133eab9c
+2 -1
View File
@@ -2224,7 +2224,8 @@ struct rapl_package *rapl_add_package_cpuslocked(int id, struct rapl_if_priv *pr
topology_physical_package_id(id) : topology_logical_die_id(id);
if ((int)(rp->id) < 0) {
pr_err("topology_logical_(package/die)_id() returned a negative value");
return ERR_PTR(-EINVAL);
ret = -EINVAL;
goto err_free_package;
}
rp->lead_cpu = id;
if (!rapl_msrs_are_pkg_scope() && topology_max_dies_per_package() > 1)