]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
amd-pstate: Fix memory leak in amd_pstate_epp_cpu_init()
authorGautham R. Shenoy <gautham.shenoy@amd.com>
Thu, 26 Mar 2026 11:47:45 +0000 (17:17 +0530)
committerMario Limonciello (AMD) <superm1@kernel.org>
Thu, 2 Apr 2026 16:28:05 +0000 (11:28 -0500)
On failure to set the epp, the function amd_pstate_epp_cpu_init()
returns with an error code without freeing the cpudata object that was
allocated at the beginning of the function.

Ensure that the cpudata object is freed before returning from the
function.

This memory leak was discovered by Claude Opus 4.6 with the aid of
Chris Mason's AI review-prompts
(https://github.com/masoncl/review-prompts/tree/main/kernel).

Assisted-by: Claude:claude-opus-4.6 review-prompts/linux
Fixes: f9a378ff6443 ("cpufreq/amd-pstate: Set different default EPP policy for Epyc and Ryzen")
Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org>
Signed-off-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
drivers/cpufreq/amd-pstate.c

index 5aa9fcd80cf519bbe16568a212423d64d29d2fb6..d57969c72c9dc5a680fead2c1b96b6cdffd3abdf 100644 (file)
@@ -1533,7 +1533,7 @@ static int amd_pstate_epp_cpu_init(struct cpufreq_policy *policy)
 
        ret = amd_pstate_set_epp(policy, cpudata->epp_default);
        if (ret)
-               return ret;
+               goto free_cpudata1;
 
        current_pstate_driver->adjust_perf = NULL;