[PATCH] i386: Use per-cpu GDT immediately upon boot
authorRusty Russell <rusty@rustcorp.com.au>
Wed, 2 May 2007 17:27:10 +0000 (19:27 +0200)
committerAndi Kleen <andi@basil.nowhere.org>
Wed, 2 May 2007 17:27:10 +0000 (19:27 +0200)
commitbf50467204b435421d8de33ad080fa46c6f3d50b
tree87a27c6f23f28d0e7dacee4ac45986e897d244a8
parentae1ee11be77f51cedb6c569887dddc70c163ab6d
[PATCH] i386: Use per-cpu GDT immediately upon boot

Now we are no longer dynamically allocating the GDT, we don't need the
"cpu_gdt_table" at all: we can switch straight from "boot_gdt_table" to the
per-cpu GDT.  This means initializing the cpu_gdt array in C.

The boot CPU uses the per-cpu var directly, then in smp_prepare_cpus() it
switches to the per-cpu copy just allocated.  For secondary CPUs, the
early_gdt_descr is set to point directly to their per-cpu copy.

For UP the code is very simple: it keeps using the "per-cpu" GDT as per SMP,
but we never have to move.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Andi Kleen <ak@suse.de>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
arch/i386/kernel/cpu/common.c
arch/i386/kernel/head.S
arch/i386/kernel/smpboot.c
arch/i386/mach-voyager/voyager_smp.c
include/asm-i386/desc.h
include/asm-i386/processor.h