cpuidle: PSCI: Move the `has_lpi` check to the beginning of the function
authorMario Limonciello <mario.limonciello@amd.com>
Fri, 25 Feb 2022 19:06:45 +0000 (13:06 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Apr 2022 07:34:04 +0000 (09:34 +0200)
commit 01f6c7338ce267959975da65d86ba34f44d54220 upstream.

Currently the first thing checked is whether the PCSI cpu_suspend function
has been initialized.

Another change will be overloading `acpi_processor_ffh_lpi_probe` and
calling it sooner.  So make the `has_lpi` check the first thing checked
to prepare for that change.

Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm64/kernel/cpuidle.c

index 03991ee..3006f43 100644 (file)
@@ -54,6 +54,9 @@ static int psci_acpi_cpu_init_idle(unsigned int cpu)
        struct acpi_lpi_state *lpi;
        struct acpi_processor *pr = per_cpu(processors, cpu);
 
+       if (unlikely(!pr || !pr->flags.has_lpi))
+               return -EINVAL;
+
        /*
         * If the PSCI cpu_suspend function hook has not been initialized
         * idle states must not be enabled, so bail out
@@ -61,9 +64,6 @@ static int psci_acpi_cpu_init_idle(unsigned int cpu)
        if (!psci_ops.cpu_suspend)
                return -EOPNOTSUPP;
 
-       if (unlikely(!pr || !pr->flags.has_lpi))
-               return -EINVAL;
-
        count = pr->power.count - 1;
        if (count <= 0)
                return -ENODEV;