mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 14:41:22 -05:00
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>
This commit is contained in:
@@ -708,21 +708,11 @@ static void power_down(void)
|
||||
if (hibernation_mode == HIBERNATION_SUSPEND) {
|
||||
pm_restore_gfp_mask();
|
||||
error = suspend_devices_and_enter(mem_sleep_current);
|
||||
if (error) {
|
||||
hibernation_mode = hibernation_ops ?
|
||||
HIBERNATION_PLATFORM :
|
||||
HIBERNATION_SHUTDOWN;
|
||||
} else {
|
||||
/* Match pm_restore_gfp_mask() call in hibernate() */
|
||||
pm_restrict_gfp_mask();
|
||||
if (!error)
|
||||
goto exit;
|
||||
|
||||
/* Restore swap signature. */
|
||||
error = swsusp_unmark();
|
||||
if (error)
|
||||
pr_err("Swap will be unusable! Try swapon -a.\n");
|
||||
|
||||
return;
|
||||
}
|
||||
hibernation_mode = hibernation_ops ? HIBERNATION_PLATFORM :
|
||||
HIBERNATION_SHUTDOWN;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -733,12 +723,9 @@ static void power_down(void)
|
||||
case HIBERNATION_PLATFORM:
|
||||
error = hibernation_platform_enter();
|
||||
if (error == -EAGAIN || error == -EBUSY) {
|
||||
/* Match pm_restore_gfp_mask() in hibernate(). */
|
||||
pm_restrict_gfp_mask();
|
||||
swsusp_unmark();
|
||||
events_check_enabled = false;
|
||||
pr_info("Wakeup event detected during hibernation, rolling back.\n");
|
||||
return;
|
||||
goto exit;
|
||||
}
|
||||
fallthrough;
|
||||
case HIBERNATION_SHUTDOWN:
|
||||
@@ -757,6 +744,15 @@ static void power_down(void)
|
||||
pr_crit("Power down manually\n");
|
||||
while (1)
|
||||
cpu_relax();
|
||||
|
||||
exit:
|
||||
/* Match the pm_restore_gfp_mask() call in hibernate(). */
|
||||
pm_restrict_gfp_mask();
|
||||
|
||||
/* Restore swap signature. */
|
||||
error = swsusp_unmark();
|
||||
if (error)
|
||||
pr_err("Swap will be unusable! Try swapon -a.\n");
|
||||
}
|
||||
|
||||
static int load_image_and_restore(void)
|
||||
|
||||
Reference in New Issue
Block a user