Skip to content

Commit ee680c1

Browse files
committed
PM: hibernate: Combine return paths in power_down()
JIRA: https://issues.redhat.com/browse/RHEL-109250 commit 1f5bcfe Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Date: Fri Sep 26 18:41:21 2025 +0200 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> Signed-off-by: Mark Langsdorf <mlangsdo@redhat.com>
1 parent 7fe8377 commit ee680c1

File tree

1 file changed

+14
-18
lines changed

1 file changed

+14
-18
lines changed

kernel/power/hibernate.c

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -660,21 +660,11 @@ static void power_down(void)
660660
if (hibernation_mode == HIBERNATION_SUSPEND) {
661661
pm_restore_gfp_mask();
662662
error = suspend_devices_and_enter(mem_sleep_current);
663-
if (error) {
664-
hibernation_mode = hibernation_ops ?
665-
HIBERNATION_PLATFORM :
666-
HIBERNATION_SHUTDOWN;
667-
} else {
668-
/* Match pm_restore_gfp_mask() call in hibernate() */
669-
pm_restrict_gfp_mask();
670-
671-
/* Restore swap signature. */
672-
error = swsusp_unmark();
673-
if (error)
674-
pr_err("Swap will be unusable! Try swapon -a.\n");
663+
if (!error)
664+
goto exit;
675665

676-
return;
677-
}
666+
hibernation_mode = hibernation_ops ? HIBERNATION_PLATFORM :
667+
HIBERNATION_SHUTDOWN;
678668
}
679669
#endif
680670

@@ -685,12 +675,9 @@ static void power_down(void)
685675
case HIBERNATION_PLATFORM:
686676
error = hibernation_platform_enter();
687677
if (error == -EAGAIN || error == -EBUSY) {
688-
/* Match pm_restore_gfp_mask() in hibernate(). */
689-
pm_restrict_gfp_mask();
690-
swsusp_unmark();
691678
events_check_enabled = false;
692679
pr_info("Wakeup event detected during hibernation, rolling back.\n");
693-
return;
680+
goto exit;
694681
}
695682
fallthrough;
696683
case HIBERNATION_SHUTDOWN:
@@ -709,6 +696,15 @@ static void power_down(void)
709696
pr_crit("Power down manually\n");
710697
while (1)
711698
cpu_relax();
699+
700+
exit:
701+
/* Match the pm_restore_gfp_mask() call in hibernate(). */
702+
pm_restrict_gfp_mask();
703+
704+
/* Restore swap signature. */
705+
error = swsusp_unmark();
706+
if (error)
707+
pr_err("Swap will be unusable! Try swapon -a.\n");
712708
}
713709

714710
static int load_image_and_restore(void)

0 commit comments

Comments
 (0)