aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/smpboot.c
diff options
context:
space:
mode:
authorPavel Machek <pavel@suse.cz>2008-04-10 17:28:10 -0400
committerIngo Molnar <mingo@elte.hu>2008-04-17 11:41:37 -0400
commite44b7b7525ad9d43163ab5e60c784325419e0ea6 (patch)
treee2918917a97b4c9de4367e8778ed78afc762b9f8 /arch/x86/kernel/smpboot.c
parentf49688d459c5eaa62db3597cbfd3cb13e361d415 (diff)
x86: move suspend wakeup code to C
Move wakeup code to .c, so that video mode setting code can be shared between boot and wakeup. Remove nasty assembly code in 64-bit case by re-using trampoline code. Stack setup was fixed to clear high 16bits of %esp, maybe that fixes some machines. .c code sharing and morse code was done H. Peter Anvin, Sam Ravnborg reviewed kbuild related stuff, and it seems okay to him. Rafael did some cleanups. [rjw: * Made the patch stop breaking compilation on x86-32 * Added arch/x86/kernel/acpi/sleep.h * Got rid of compiler warnings in arch/x86/kernel/acpi/sleep.c * Fixed 32-bit compilation on x86-64 systems * Added include/asm-x86/trampoline.h and fixed the non-SMP compilation on 64-bit x86 * Removed arch/x86/kernel/acpi/sleep_32.c which was not used * Fixed some breakage caused by the integration of smpboot.c done under us in the meantime] Signed-off-by: Pavel Machek <pavel@suse.cz> Signed-off-by: H. Peter Anvin <hpa@zytor.com> Reviewed-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/smpboot.c')
-rw-r--r--arch/x86/kernel/smpboot.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index ca3929b16049..424600e671bd 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -53,6 +53,7 @@
53#include <asm/nmi.h> 53#include <asm/nmi.h>
54#include <asm/irq.h> 54#include <asm/irq.h>
55#include <asm/smp.h> 55#include <asm/smp.h>
56#include <asm/trampoline.h>
56#include <asm/cpu.h> 57#include <asm/cpu.h>
57#include <asm/numa.h> 58#include <asm/numa.h>
58#include <asm/pgtable.h> 59#include <asm/pgtable.h>
@@ -140,7 +141,7 @@ static atomic_t init_deasserted;
140static int boot_cpu_logical_apicid; 141static int boot_cpu_logical_apicid;
141 142
142/* ready for x86_64, no harm for x86, since it will overwrite after alloc */ 143/* ready for x86_64, no harm for x86, since it will overwrite after alloc */
143unsigned char *trampoline_base = __va(SMP_TRAMPOLINE_BASE); 144unsigned char *trampoline_base = __va(TRAMPOLINE_BASE);
144 145
145/* representing cpus for which sibling maps can be computed */ 146/* representing cpus for which sibling maps can be computed */
146static cpumask_t cpu_sibling_setup_map; 147static cpumask_t cpu_sibling_setup_map;
@@ -554,8 +555,7 @@ cpumask_t cpu_coregroup_map(int cpu)
554 * bootstrap into the page concerned. The caller 555 * bootstrap into the page concerned. The caller
555 * has made sure it's suitably aligned. 556 * has made sure it's suitably aligned.
556 */ 557 */
557 558unsigned long setup_trampoline(void)
558unsigned long __cpuinit setup_trampoline(void)
559{ 559{
560 memcpy(trampoline_base, trampoline_data, 560 memcpy(trampoline_base, trampoline_data,
561 trampoline_end - trampoline_data); 561 trampoline_end - trampoline_data);