]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
cpufreq/amd-pstate: Move registration after static function call update
authorMario Limonciello <mario.limonciello@amd.com>
Mon, 28 Oct 2024 14:55:42 +0000 (09:55 -0500)
committerMario Limonciello <mario.limonciello@amd.com>
Tue, 29 Oct 2024 13:50:39 +0000 (08:50 -0500)
On shared memory designs the static functions need to work before
registration is done or the system can hang at bootup.

Move the registration later in amd_pstate_init() to solve this.

Fixes: b427ac408475 ("cpufreq/amd-pstate: Remove the redundant amd_pstate_set_driver() call")
Reported-by: Klara Modin <klarasmodin@gmail.com>
Closes: https://lore.kernel.org/linux-pm/cf9c146d-bacf-444e-92e2-15ebf513af96@gmail.com/#t
Tested-by: Klara Modin <klarasmodin@gmail.com>
Tested-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
Link: https://lore.kernel.org/r/20241028145542.1739160-2-superm1@kernel.org
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
drivers/cpufreq/amd-pstate.c

index e480da818d6f536af479d4e2528ee1763bbdd9c1..f834cc8205e2a98d1d683c8810f7f8135a7603fa 100644 (file)
@@ -1859,12 +1859,6 @@ static int __init amd_pstate_init(void)
                return -ENODEV;
        }
 
-       ret = amd_pstate_register_driver(cppc_state);
-       if (ret) {
-               pr_err("failed to register with return %d\n", ret);
-               return ret;
-       }
-
        /* capability check */
        if (cpu_feature_enabled(X86_FEATURE_CPPC)) {
                pr_debug("AMD CPPC MSR based functionality is supported\n");
@@ -1875,6 +1869,12 @@ static int __init amd_pstate_init(void)
                static_call_update(amd_pstate_update_perf, shmem_update_perf);
        }
 
+       ret = amd_pstate_register_driver(cppc_state);
+       if (ret) {
+               pr_err("failed to register with return %d\n", ret);
+               return ret;
+       }
+
        if (amd_pstate_prefcore) {
                ret = amd_detect_prefcore(&amd_pstate_prefcore);
                if (ret)