]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
cpufreq/amd-pstate: Call cppc_set_auto_sel() only for online CPUs
authorGautham R. Shenoy <gautham.shenoy@amd.com>
Fri, 7 Nov 2025 07:41:45 +0000 (13:11 +0530)
committerMario Limonciello (AMD) <superm1@kernel.org>
Tue, 11 Nov 2025 05:35:20 +0000 (23:35 -0600)
amd_pstate_change_mode_without_dvr_change() calls cppc_set_auto_sel()
for all the present CPUs.

However, this callpath eventually calls cppc_set_reg_val() which
accesses the per-cpu cpc_desc_ptr object. This object is initialized
only for online CPUs via acpi_soft_cpu_online() -->
__acpi_processor_start() --> acpi_cppc_processor_probe().

Hence, restrict calling cppc_set_auto_sel() to only the online CPUs.

Fixes: 3ca7bc818d8c ("cpufreq: amd-pstate: Add guided mode control support via sysfs")
Suggested-by: Mario Limonciello (AMD) (kernel.org) <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 b3dad7cde46f0f5ffcdab77848d76db325ef36ae..c45bc98721d24762cdc6da4045f43b4db4620160 100644 (file)
@@ -1278,7 +1278,7 @@ static int amd_pstate_change_mode_without_dvr_change(int mode)
        if (cpu_feature_enabled(X86_FEATURE_CPPC) || cppc_state == AMD_PSTATE_ACTIVE)
                return 0;
 
-       for_each_present_cpu(cpu) {
+       for_each_online_cpu(cpu) {
                cppc_set_auto_sel(cpu, (cppc_state == AMD_PSTATE_PASSIVE) ? 0 : 1);
        }