aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2007-04-02 02:49:49 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-04-02 13:06:09 -0400
commit1d64b9cb1dc2a7cd521444e3d908adeccd026356 (patch)
tree31c6c7751b656e74b5ee05159c85154f710e8956 /include
parent0c84ce268b69855919b6ac7edc8f11caf21e9c88 (diff)
[PATCH] Fix microcode-related suspend problem
Fix the regression resulting from the recent change of suspend code ordering that causes systems based on Intel x86 CPUs using the microcode driver to hang during the resume. The problem occurs since the microcode driver uses request_firmware() in its CPU hotplug notifier, which is called after tasks has been frozen and hangs. It can be fixed by telling the microcode driver to use the microcode stored in memory during the resume instead of trying to load it from disk. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Adrian Bunk <bunk@stusta.de> Cc: Tigran Aivazian <tigran@aivazian.fsnet.co.uk> Cc: Pavel Machek <pavel@ucw.cz> Cc: Maxim <maximlevitsky@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/cpu.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/cpu.h b/include/linux/cpu.h
index 769ddc6df492..c22b0dfcbcd2 100644
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
@@ -127,9 +127,13 @@ static inline int cpu_is_offline(int cpu) { return 0; }
127#endif /* CONFIG_HOTPLUG_CPU */ 127#endif /* CONFIG_HOTPLUG_CPU */
128 128
129#ifdef CONFIG_SUSPEND_SMP 129#ifdef CONFIG_SUSPEND_SMP
130extern int suspend_cpu_hotplug;
131
130extern int disable_nonboot_cpus(void); 132extern int disable_nonboot_cpus(void);
131extern void enable_nonboot_cpus(void); 133extern void enable_nonboot_cpus(void);
132#else 134#else
135#define suspend_cpu_hotplug 0
136
133static inline int disable_nonboot_cpus(void) { return 0; } 137static inline int disable_nonboot_cpus(void) { return 0; }
134static inline void enable_nonboot_cpus(void) {} 138static inline void enable_nonboot_cpus(void) {}
135#endif 139#endif