[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <48691CC5.4050603@sgi.com>
Date: Mon, 30 Jun 2008 10:49:57 -0700
From: Mike Travis <travis@....com>
To: Jeremy Fitzhardinge <jeremy@...p.org>
CC: Rusty Russell <rusty@...tcorp.com.au>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
len.brown@...el.com, Jack Steiner <steiner@....com>
Subject: Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into per cpu
area
Jeremy Fitzhardinge wrote:
> Mike Travis wrote:
...
>> I'm not sure yet what to put into acpi_save_state_mem:
>>
>> initial_code = (unsigned long)wakeup_long64;
>> + /* ZZZ initial_pda = (unsigned long)?; */
>>
>
> You'll need to change wakeup_long64 to load the right value into the
> GS_BASE msr anyway.
>
> J
I'm afraid I don't quite understand the transitioning of the
ACPI states to figure out the correct thing to do. My first
inclination would be to: [sorry, cut and pasted]
--- linux-2.6.tip.orig/arch/x86/kernel/acpi/sleep.c
+++ linux-2.6.tip/arch/x86/kernel/acpi/sleep.c
@@ -89,6 +89,8 @@ int acpi_save_state_mem(void)
#ifdef CONFIG_SMP
stack_start.sp = temp_stack + 4096;
#endif
+ early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu);
+ initial_pda = (unsigned long)get_cpu_pda(cpu);
initial_code = (unsigned long)wakeup_long64;
saved_magic = 0x123456789abcdef0;
#endif /* CONFIG_64BIT */
But I'd like some confirmation that this is right thing to do...
[This mimics what smpboot.c:do_boot_cpu() does.]
Len - I'll cc you on the full patch submission shortly.
Thanks,
Mike
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists