Commit 1f5bcfe9 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

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: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: default avatarMario 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: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 6f4c6f9e
Loading
Loading
Loading
Loading
+14 −18
Original line number Diff line number Diff line
@@ -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();

			/* Restore swap signature. */
			error = swsusp_unmark();
			if (error)
				pr_err("Swap will be unusable! Try swapon -a.\n");
		if (!error)
			goto exit;

			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)