summaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/pda.h
diff options
context:
space:
mode:
authorTejun Heo2009-01-13 12:41:35 +0100
committerIngo Molnar2009-01-16 14:19:58 +0100
commit9939ddaff52787b2a7c1adf1b2afc95421aa0884 (patch)
tree6e7266d065914e19c3c3f4b4e475f09b9669fa51 /arch/x86/include/asm/pda.h
parentx86: fold pda into percpu area on SMP (diff)
downloadkernel-qcow2-linux-9939ddaff52787b2a7c1adf1b2afc95421aa0884.tar.gz
kernel-qcow2-linux-9939ddaff52787b2a7c1adf1b2afc95421aa0884.tar.xz
kernel-qcow2-linux-9939ddaff52787b2a7c1adf1b2afc95421aa0884.zip
x86: merge 64 and 32 SMP percpu handling
Now that pda is allocated as part of percpu, percpu doesn't need to be accessed through pda. Unify x86_64 SMP percpu access with x86_32 SMP one. Other than the segment register, operand size and the base of percpu symbols, they behave identical now. This patch replaces now unnecessary pda->data_offset with a dummy field which is necessary to keep stack_canary at its place. This patch also moves per_cpu_offset initialization out of init_gdt() into setup_per_cpu_areas(). Note that this change also necessitates explicit per_cpu_offset initializations in voyager_smp.c. With this change, x86_OP_percpu()'s are as efficient on x86_64 as on x86_32 and also x86_64 can use assembly PER_CPU macros. Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/include/asm/pda.h')
-rw-r--r--arch/x86/include/asm/pda.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/x86/include/asm/pda.h b/arch/x86/include/asm/pda.h
index 2d5b49c3248e..e91558e37850 100644
--- a/arch/x86/include/asm/pda.h
+++ b/arch/x86/include/asm/pda.h
@@ -11,8 +11,7 @@
/* Per processor datastructure. %gs points to it while the kernel runs */
struct x8664_pda {
struct task_struct *pcurrent; /* 0 Current process */
- unsigned long data_offset; /* 8 Per cpu data offset from linker
- address */
+ unsigned long dummy;
unsigned long kernelstack; /* 16 top of kernel stack for current */
unsigned long oldrsp; /* 24 user rsp for system call */
int irqcount; /* 32 Irq nesting counter. Starts -1 */