Skip to content

Commit 2e5f5dc

Browse files
committed
ACPI: processor: perflib: Move problematic pr->performance check
JIRA: https://issues.redhat.com/browse/RHEL-114092 commit d405ec2 Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Date: Tue, 12 Aug 2025 15:33:58 +0000 Commit d33bd88 ("ACPI: processor: perflib: Fix initial _PPC limit application") added a pr->performance check that prevents the frequency QoS request from being added when the given processor has no performance object. Unfortunately, this causes a WARN() in freq_qos_remove_request() to trigger on an attempt to take the given CPU offline later because the frequency QoS object has not been added for it due to the missing performance object. Address this by moving the pr->performance check before calling acpi_processor_get_platform_limit() so it only prevents a limit from being set for the CPU if the performance object is not present. This way, the frequency QoS request is added as it was before the above commit and it is present all the time along with the CPU's cpufreq policy regardless of whether or not the CPU is online. Fixes: d33bd88 ("ACPI: processor: perflib: Fix initial _PPC limit application") Tested-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Cc: 5.4+ <stable@vger.kernel.org> # 5.4+ Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Link: https://patch.msgid.link/2801421.mvXUDI8C0e@rafael.j.wysocki Signed-off-by: Mark Langsdorf <mlangsdo@redhat.com>
1 parent c00ebb8 commit 2e5f5dc

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

drivers/acpi/processor_perflib.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ void acpi_processor_ppc_init(struct cpufreq_policy *policy)
179179
struct acpi_processor *pr = per_cpu(processors, cpu);
180180
int ret;
181181

182-
if (!pr || !pr->performance)
182+
if (!pr)
183183
continue;
184184

185185
/*
@@ -196,6 +196,9 @@ void acpi_processor_ppc_init(struct cpufreq_policy *policy)
196196
pr_err("Failed to add freq constraint for CPU%d (%d)\n",
197197
cpu, ret);
198198

199+
if (!pr->performance)
200+
continue;
201+
199202
ret = acpi_processor_get_platform_limit(pr);
200203
if (ret)
201204
pr_err("Failed to update freq constraint for CPU%d (%d)\n",

0 commit comments

Comments
 (0)