As suggested by Andi Kleen, don't allocate a GDT page if there is already one present. Needed for CPU hotplug. Signed-off-by: Zachary Amsden <zach@xxxxxxxxxx> Index: linux-2.6.14-rc1/arch/i386/kernel/smpboot.c =================================================================== --- linux-2.6.14-rc1.orig/arch/i386/kernel/smpboot.c 2005-09-20 20:38:22.000000000 -0700 +++ linux-2.6.14-rc1/arch/i386/kernel/smpboot.c 2005-09-28 12:54:08.000000000 -0700 @@ -898,7 +898,8 @@ static int __devinit do_boot_cpu(int api * This grunge runs the startup process for * the targeted processor. */ - cpu_gdt_descr[cpu].address = __get_free_page(GFP_KERNEL|__GFP_ZERO); + if (!cpu_gdt_descr[cpu].address) + cpu_gdt_descr[cpu].address = __get_free_page(GFP_KERNEL|__GFP_ZERO); atomic_set(&init_deasserted, 0);