Re: [PATCH 3/3] Gdt hotplug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Andi Kleen wrote:

On Wednesday 28 September 2005 23:44, Zachary Amsden wrote:
As suggested by Andi Kleen, don't allocate a GDT page if there is already
one present.  Needed for CPU hotplug.

Did I really suggest that? I think I suggested checking the return
value of gfp. Also get_zeroed_page() is slightly cleaner than GFP_ZERO.

Then I think this looks better all around.

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 <[email protected]>
Index: linux-2.6.14-rc2/arch/i386/kernel/smpboot.c
===================================================================
--- linux-2.6.14-rc2.orig/arch/i386/kernel/smpboot.c	2005-09-28 15:49:26.000000000 -0700
+++ linux-2.6.14-rc2/arch/i386/kernel/smpboot.c	2005-09-28 16:00:55.000000000 -0700
@@ -874,6 +874,12 @@ static int __devinit do_boot_cpu(int api
 	unsigned long start_eip;
 	unsigned short nmi_high = 0, nmi_low = 0;
 
+	if (!cpu_gdt_descr[cpu].address &&
+	    !(cpu_gdt_descr[cpu].address = get_zeroed_page(GFP_KERNEL))) {
+		printk("Failed to allocate GDT for CPU %d\n", cpu);
+		return 1;
+	}
+
 	++cpucount;
 
 	/*
@@ -898,8 +904,6 @@ 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);
-
 	atomic_set(&init_deasserted, 0);
 
 	Dprintk("Setting warm reset code and vector.\n");

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux