Re: [PATCH v2 2/2] cpufreq/amd-pstate: Move registration after static function call update

From: Dhananjay Ugwekar
Date: Tue Oct 29 2024 - 00:57:58 EST


On 10/28/2024 8:25 PM, Mario Limonciello wrote:
> From: Mario Limonciello <mario.limonciello@xxxxxxx>
>
> 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.

Looks good to me.
Also,
Tested-by: Dhananjay Ugwekar <dhananjay.ugwekar@xxxxxxx>

Thanks,
Dhananjay

>
> Fixes: e238968a2087 ("cpufreq/amd-pstate: Remove the redundant amd_pstate_set_driver() call")
> Reported-by: Klara Modin <klarasmodin@xxxxxxxxx>
> Closes: https://lore.kernel.org/linux-pm/cf9c146d-bacf-444e-92e2-15ebf513af96@xxxxxxxxx/#t
> Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx>
> ---
> drivers/cpufreq/amd-pstate.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
> index e480da818d6f5..f834cc8205e2a 100644
> --- a/drivers/cpufreq/amd-pstate.c
> +++ b/drivers/cpufreq/amd-pstate.c
> @@ -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)