diff options
author | Tejun Heo <tj@kernel.org> | 2009-01-13 20:41:35 +0900 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-01-16 14:19:26 +0100 |
commit | f32ff5388d86518c0375ccdb330d3b459b9c405e (patch) | |
tree | 8551cb03dcbbfafaac3500aac18fee811b0f1ffe /arch/x86/kernel/acpi/sleep.c | |
parent | 3e5d8f978435bb9ba4dfe3f4514e65e7885db1a9 (diff) | |
download | lwn-f32ff5388d86518c0375ccdb330d3b459b9c405e.tar.gz lwn-f32ff5388d86518c0375ccdb330d3b459b9c405e.zip |
x86: load pointer to pda into %gs while brining up a CPU
[ Based on original patch from Christoph Lameter and Mike Travis. ]
CPU startup code in head_64.S loaded address of a zero page into %gs
for temporary use till pda is loaded but address to the actual pda is
available at the point. Load the real address directly instead.
This will help unifying percpu and pda handling later on.
This patch is mostly taken from Mike Travis' "x86_64: Fold pda into
per cpu area" patch.
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'arch/x86/kernel/acpi/sleep.c')
-rw-r--r-- | arch/x86/kernel/acpi/sleep.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c index 707c1f6f95fa..9ff67f8dc2c0 100644 --- a/arch/x86/kernel/acpi/sleep.c +++ b/arch/x86/kernel/acpi/sleep.c @@ -101,6 +101,7 @@ int acpi_save_state_mem(void) stack_start.sp = temp_stack + sizeof(temp_stack); early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(smp_processor_id()); + initial_gs = (unsigned long)cpu_pda(smp_processor_id()); #endif initial_code = (unsigned long)wakeup_long64; saved_magic = 0x123456789abcdef0; |