--- arch/x86/kernel/setup64.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) Index: linux-2.6.24-rc3-mm2/arch/x86/kernel/setup64.c =================================================================== --- linux-2.6.24-rc3-mm2.orig/arch/x86/kernel/setup64.c 2007-11-28 20:59:35.391937963 -0800 +++ linux-2.6.24-rc3-mm2/arch/x86/kernel/setup64.c 2007-11-28 21:05:41.867363439 -0800 @@ -111,11 +111,11 @@ void __init setup_per_cpu_areas(void) } if (!ptr) panic("Cannot allocate cpu data for CPU %d\n", i); - cpu_pda(i)->data_offset = ptr - __per_cpu_start; memcpy(ptr, __per_cpu_start, __per_cpu_end - __per_cpu_start); /* Relocate the pda */ - memcpy(&per_cpu(pda, i), cpu_pda(i), sizeof(struct x8664_pda)); - cpu_pda(i) = &per_cpu(pda, i); + memcpy(ptr, cpu_pda(i), sizeof(struct x8664_pda)); + cpu_pda(i) = (struct x8664_pda *)ptr; + cpu_pda(i)->data_offset = ptr - __per_cpu_start; } /* Fix up pda for this processor .... */ pda_init(0);