From: Dhananjay Ugwekar Dhananjay.Ugwekar@amd.com
mainline inclusion from mainline-v6.12-rc1 commit 49243adc715e6ae34d6cc003827e63bcf5b3a21d category: bugfix bugzilla: https://gitee.com/src-openeuler/kernel/issues/IAYRBF
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?i...
--------------------------------
Fix the reference counting of cpufreq_policy object in amd_pstate_update() function by adding the missing cpufreq_cpu_put().
Fixes: e8f555daacd3 ("cpufreq/amd-pstate: fix setting policy current frequency value") Signed-off-by: Dhananjay Ugwekar Dhananjay.Ugwekar@amd.com Reviewed-by: Perry Yuan perry.yuan@amd.com Signed-off-by: Viresh Kumar viresh.kumar@linaro.org Signed-off-by: Bowen You youbowen2@huawei.com --- drivers/cpufreq/amd-pstate.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c index cbf3038f962c..bbd758d21d8f 100644 --- a/drivers/cpufreq/amd-pstate.c +++ b/drivers/cpufreq/amd-pstate.c @@ -491,12 +491,15 @@ static void amd_pstate_update(struct amd_cpudata *cpudata, u32 min_perf, }
if (value == prev) - return; + goto cpufreq_policy_put;
WRITE_ONCE(cpudata->cppc_req_cached, value);
amd_pstate_update_perf(cpudata, min_perf, des_perf, max_perf, fast_switch); + +cpufreq_policy_put: + cpufreq_cpu_put(policy); }
static int amd_pstate_verify(struct cpufreq_policy_data *policy)