Skip to content

Commit 1f5bcfe

Browse files
committed
PM: hibernate: Combine return paths in power_down()
To avoid code duplication and improve clarity, combine the code paths in power_down() leading to a return from that function. No intentional functional impact. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org> Link: https://patch.msgid.link/3571055.QJadu78ljV@rafael.j.wysocki [ rjw: Changed the new label name to "exit" ] Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
1 parent 6f4c6f9 commit 1f5bcfe

1 file changed

Lines changed: 14 additions & 18 deletions

File tree

kernel/power/hibernate.c

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -708,21 +708,11 @@ static void power_down(void)
708708
if (hibernation_mode == HIBERNATION_SUSPEND) {
709709
pm_restore_gfp_mask();
710710
error = suspend_devices_and_enter(mem_sleep_current);
711-
if (error) {
712-
hibernation_mode = hibernation_ops ?
713-
HIBERNATION_PLATFORM :
714-
HIBERNATION_SHUTDOWN;
715-
} else {
716-
/* Match pm_restore_gfp_mask() call in hibernate() */
717-
pm_restrict_gfp_mask();
718-
719-
/* Restore swap signature. */
720-
error = swsusp_unmark();
721-
if (error)
722-
pr_err("Swap will be unusable! Try swapon -a.\n");
711+
if (!error)
712+
goto exit;
723713

724-
return;
725-
}
714+
hibernation_mode = hibernation_ops ? HIBERNATION_PLATFORM :
715+
HIBERNATION_SHUTDOWN;
726716
}
727717
#endif
728718

@@ -733,12 +723,9 @@ static void power_down(void)
733723
case HIBERNATION_PLATFORM:
734724
error = hibernation_platform_enter();
735725
if (error == -EAGAIN || error == -EBUSY) {
736-
/* Match pm_restore_gfp_mask() in hibernate(). */
737-
pm_restrict_gfp_mask();
738-
swsusp_unmark();
739726
events_check_enabled = false;
740727
pr_info("Wakeup event detected during hibernation, rolling back.\n");
741-
return;
728+
goto exit;
742729
}
743730
fallthrough;
744731
case HIBERNATION_SHUTDOWN:
@@ -757,6 +744,15 @@ static void power_down(void)
757744
pr_crit("Power down manually\n");
758745
while (1)
759746
cpu_relax();
747+
748+
exit:
749+
/* Match the pm_restore_gfp_mask() call in hibernate(). */
750+
pm_restrict_gfp_mask();
751+
752+
/* Restore swap signature. */
753+
error = swsusp_unmark();
754+
if (error)
755+
pr_err("Swap will be unusable! Try swapon -a.\n");
760756
}
761757

762758
static int load_image_and_restore(void)

0 commit comments

Comments
 (0)