cpufreq/amd-pstate: Fix cpufreq_policy ref counting
amd_pstate_update_limits() takes a cpufreq_policy reference but doesn't
decrement the refcount in one of the exit paths, fix that.
Fixes: 45722e777f
("cpufreq: amd-pstate: Optimize amd_pstate_update_limits()")
Signed-off-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
Link: https://lore.kernel.org/r/20250205112523.201101-10-dhananjay.ugwekar@amd.com
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
This commit is contained in:
parent
55db9b73c3
commit
3ace20038e
1 changed files with 5 additions and 4 deletions
|
@ -821,20 +821,21 @@ static void amd_pstate_init_prefcore(struct amd_cpudata *cpudata)
|
||||||
|
|
||||||
static void amd_pstate_update_limits(unsigned int cpu)
|
static void amd_pstate_update_limits(unsigned int cpu)
|
||||||
{
|
{
|
||||||
struct cpufreq_policy *policy = cpufreq_cpu_get(cpu);
|
struct cpufreq_policy *policy = NULL;
|
||||||
struct amd_cpudata *cpudata;
|
struct amd_cpudata *cpudata;
|
||||||
u32 prev_high = 0, cur_high = 0;
|
u32 prev_high = 0, cur_high = 0;
|
||||||
int ret;
|
int ret;
|
||||||
bool highest_perf_changed = false;
|
bool highest_perf_changed = false;
|
||||||
|
|
||||||
|
if (!amd_pstate_prefcore)
|
||||||
|
return;
|
||||||
|
|
||||||
|
policy = cpufreq_cpu_get(cpu);
|
||||||
if (!policy)
|
if (!policy)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
cpudata = policy->driver_data;
|
cpudata = policy->driver_data;
|
||||||
|
|
||||||
if (!amd_pstate_prefcore)
|
|
||||||
return;
|
|
||||||
|
|
||||||
guard(mutex)(&amd_pstate_driver_lock);
|
guard(mutex)(&amd_pstate_driver_lock);
|
||||||
|
|
||||||
ret = amd_get_highest_perf(cpu, &cur_high);
|
ret = amd_get_highest_perf(cpu, &cur_high);
|
||||||
|
|
Loading…
Add table
Reference in a new issue