+++ /dev/null
-From f45eb74cf9936d37dd91d28ccca865daa603eaae Mon Sep 17 00:00:00 2001
-From: Rafael J. Wysocki <rjw@sisk.pl>
-Date: Mon, 3 Nov 2008 19:01:02 +0900
-Subject: [PATCH] Hibernation: Introduce system_entering_hibernation
-References: bnc#441721
-
-Introduce boolean function system_entering_hibernation() returning
-'true' during the last phase of hibernation, in which devices are
-being put into low power states and the sleep state (for example,
-ACPI S4) is finally entered.
-
-Some device drivers need such a function to check if the system is
-in the final phase of hibernation. In particular, some SATA drivers
-are going to use it for blacklisting systems in which the disks
-should not be spun down during the last phase of hibernation (the
-BIOS will do that anyway).
-
-Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
-Signed-off-by: Tejun Heo <tj@kernel.org>
-Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
-Signed-off-by: Tejun Heo <teheo@suse.de>
----
- include/linux/suspend.h | 2 ++
- kernel/power/disk.c | 10 ++++++++++
- 2 files changed, 12 insertions(+)
-
-Index: linux-2.6.27/include/linux/suspend.h
-===================================================================
---- linux-2.6.27.orig/include/linux/suspend.h
-+++ linux-2.6.27/include/linux/suspend.h
-@@ -232,6 +232,7 @@ extern unsigned long get_safe_page(gfp_t
-
- extern void hibernation_set_ops(struct platform_hibernation_ops *ops);
- extern int hibernate(void);
-+extern bool system_entering_hibernation(void);
- #else /* CONFIG_HIBERNATION */
- static inline int swsusp_page_is_forbidden(struct page *p) { return 0; }
- static inline void swsusp_set_page_free(struct page *p) {}
-@@ -239,6 +240,7 @@ static inline void swsusp_unset_page_fre
-
- static inline void hibernation_set_ops(struct platform_hibernation_ops *ops) {}
- static inline int hibernate(void) { return -ENOSYS; }
-+static inline bool system_entering_hibernation(void) { return false; }
- #endif /* CONFIG_HIBERNATION */
-
- #ifdef CONFIG_PM_SLEEP
-Index: linux-2.6.27/kernel/power/disk.c
-===================================================================
---- linux-2.6.27.orig/kernel/power/disk.c
-+++ linux-2.6.27/kernel/power/disk.c
-@@ -71,6 +71,14 @@ void hibernation_set_ops(struct platform
- mutex_unlock(&pm_mutex);
- }
-
-+static bool entering_platform_hibernation;
-+
-+bool system_entering_hibernation(void)
-+{
-+ return entering_platform_hibernation;
-+}
-+EXPORT_SYMBOL_GPL(system_entering_hibernation);
-+
- #ifdef CONFIG_PM_DEBUG
- static void hibernation_debug_sleep(void)
- {
-@@ -415,6 +423,7 @@ int hibernation_platform_enter(void)
- if (error)
- goto Close;
-
-+ entering_platform_hibernation = true;
- suspend_console();
- ftrace_save = __ftrace_enabled_save();
- error = device_suspend(PMSG_HIBERNATE);
-@@ -450,6 +459,7 @@ int hibernation_platform_enter(void)
- Finish:
- hibernation_ops->finish();
- Resume_devices:
-+ entering_platform_hibernation = false;
- device_resume(PMSG_RESTORE);
- __ftrace_enabled_restore(ftrace_save);
- resume_console();