ACPI: PM: sleep: Do not set suspend_ops unnecessarily
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 20 Oct 2021 19:10:17 +0000 (21:10 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 26 Oct 2021 13:31:46 +0000 (15:31 +0200)
If none of the S1 - S3 sleep states is supported, it is not necessary
to register suspend_ops, so don't do that then.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/sleep.c

index 3023224..eaa4775 100644 (file)
@@ -815,14 +815,18 @@ void __weak acpi_s2idle_setup(void)
 
 static void acpi_sleep_suspend_setup(void)
 {
+       bool suspend_ops_needed = false;
        int i;
 
        for (i = ACPI_STATE_S1; i < ACPI_STATE_S4; i++)
-               if (acpi_sleep_state_supported(i))
+               if (acpi_sleep_state_supported(i)) {
                        sleep_states[i] = 1;
+                       suspend_ops_needed = true;
+               }
 
-       suspend_set_ops(old_suspend_ordering ?
-               &acpi_suspend_ops_old : &acpi_suspend_ops);
+       if (suspend_ops_needed)
+               suspend_set_ops(old_suspend_ordering ?
+                               &acpi_suspend_ops_old : &acpi_suspend_ops);
 
        acpi_s2idle_setup();
 }