Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f3de4be9d5f8551d7880a1f1f5231a30e0161b1f
Commit:     f3de4be9d5f8551d7880a1f1f5231a30e0161b1f
Parent:     b07e35f94a7b6a059f889b904529ee907dc0634d
Author:     Rafael J. Wysocki <[EMAIL PROTECTED]>
AuthorDate: Thu Aug 30 23:56:29 2007 -0700
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Fri Aug 31 01:42:22 2007 -0700

    PM: Fix dependencies of CONFIG_SUSPEND and CONFIG_HIBERNATION
    
    Dependencies of CONFIG_SUSPEND and CONFIG_HIBERNATION introduced by commit
    296699de6bdc717189a331ab6bbe90e05c94db06 "Introduce CONFIG_SUSPEND for
    suspend-to-Ram and standby" are incorrect, as they don't cover the facts 
that
    (1) not all architectures support suspend and (2) SMP hibernation is only
    possible on X86 and PPC64 (if CONFIG_PPC64_SWSUSP is set).
    
    Signed-off-by: Rafael J. Wysocki <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 arch/x86_64/defconfig |    1 -
 include/linux/cpu.h   |    6 +++---
 kernel/cpu.c          |    4 ++--
 kernel/power/Kconfig  |   41 +++++++++++++++++++++++++++++++----------
 4 files changed, 36 insertions(+), 16 deletions(-)

diff --git a/arch/x86_64/defconfig b/arch/x86_64/defconfig
index e64f65c..b091c5e 100644
--- a/arch/x86_64/defconfig
+++ b/arch/x86_64/defconfig
@@ -201,7 +201,6 @@ CONFIG_PM=y
 # CONFIG_PM_DEBUG is not set
 CONFIG_HIBERNATION=y
 CONFIG_PM_STD_PARTITION=""
-CONFIG_SUSPEND_SMP=y
 
 #
 # ACPI (Advanced Configuration and Power Interface) Support
diff --git a/include/linux/cpu.h b/include/linux/cpu.h
index 1d5ded0..0ad72c4 100644
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
@@ -126,16 +126,16 @@ static inline void cpuhotplug_mutex_unlock(struct mutex 
*cpu_hp_mutex)
 static inline int cpu_is_offline(int cpu) { return 0; }
 #endif         /* CONFIG_HOTPLUG_CPU */
 
-#ifdef CONFIG_SUSPEND_SMP
+#ifdef CONFIG_PM_SLEEP_SMP
 extern int suspend_cpu_hotplug;
 
 extern int disable_nonboot_cpus(void);
 extern void enable_nonboot_cpus(void);
-#else
+#else /* !CONFIG_PM_SLEEP_SMP */
 #define suspend_cpu_hotplug    0
 
 static inline int disable_nonboot_cpus(void) { return 0; }
 static inline void enable_nonboot_cpus(void) {}
-#endif
+#endif /* !CONFIG_PM_SLEEP_SMP */
 
 #endif /* _LINUX_CPU_H_ */
diff --git a/kernel/cpu.c b/kernel/cpu.c
index 181ae70..38033db 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -273,7 +273,7 @@ int __cpuinit cpu_up(unsigned int cpu)
        return err;
 }
 
-#ifdef CONFIG_SUSPEND_SMP
+#ifdef CONFIG_PM_SLEEP_SMP
 static cpumask_t frozen_cpus;
 
 int disable_nonboot_cpus(void)
@@ -334,4 +334,4 @@ void enable_nonboot_cpus(void)
 out:
        mutex_unlock(&cpu_add_remove_lock);
 }
-#endif
+#endif /* CONFIG_PM_SLEEP_SMP */
diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
index 412859f..c8580a1 100644
--- a/kernel/power/Kconfig
+++ b/kernel/power/Kconfig
@@ -72,15 +72,10 @@ config PM_TRACE
        CAUTION: this option will cause your machine's real-time clock to be
        set to an invalid time after a resume.
 
-config SUSPEND_SMP_POSSIBLE
-       bool
-       depends on (X86 && !X86_VOYAGER) || (PPC64 && (PPC_PSERIES || PPC_PMAC))
-       depends on SMP
-       default y
-
-config SUSPEND_SMP
+config PM_SLEEP_SMP
        bool
-       depends on SUSPEND_SMP_POSSIBLE && PM_SLEEP
+       depends on SUSPEND_SMP_POSSIBLE || HIBERNATION_SMP_POSSIBLE
+       depends on PM_SLEEP
        select HOTPLUG_CPU
        default y
 
@@ -89,20 +84,46 @@ config PM_SLEEP
        depends on SUSPEND || HIBERNATION
        default y
 
+config SUSPEND_UP_POSSIBLE
+       bool
+       depends on (X86 && !X86_VOYAGER) || PPC || ARM || BLACKFIN || MIPS \
+                  || SUPERH || FRV
+       depends on !SMP
+       default y
+
+config SUSPEND_SMP_POSSIBLE
+       bool
+       depends on (X86 && !X86_VOYAGER) \
+                  || (PPC && (PPC_PSERIES || PPC_PMAC)) || ARM
+       depends on SMP
+       default y
+
 config SUSPEND
        bool "Suspend to RAM and standby"
        depends on PM
-       depends on !SMP || SUSPEND_SMP_POSSIBLE
+       depends on SUSPEND_UP_POSSIBLE || SUSPEND_SMP_POSSIBLE
        default y
        ---help---
          Allow the system to enter sleep states in which main memory is
          powered and thus its contents are preserved, such as the
          suspend-to-RAM state (i.e. the ACPI S3 state).
 
+config HIBERNATION_UP_POSSIBLE
+       bool
+       depends on X86 || PPC64_SWSUSP || FRV || PPC32
+       depends on !SMP
+       default y
+
+config HIBERNATION_SMP_POSSIBLE
+       bool
+       depends on (X86 && !X86_VOYAGER) || PPC64_SWSUSP
+       depends on SMP
+       default y
+
 config HIBERNATION
        bool "Hibernation (aka 'suspend to disk')"
        depends on PM && SWAP
-       depends on ((X86 || PPC64_SWSUSP || FRV || PPC32) && !SMP) || 
SUSPEND_SMP_POSSIBLE
+       depends on HIBERNATION_UP_POSSIBLE || HIBERNATION_SMP_POSSIBLE
        ---help---
          Enable the suspend to disk (STD) functionality, which is usually
          called "hibernation" in user interfaces.  STD checkpoints the
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to