[PATCH] CPU hotplug broken with 2GB VMSPLIT
authorShaohua Li <shaohua.li@intel.com>
Fri, 8 Dec 2006 10:41:13 +0000 (02:41 -0800)
committerLinus Torvalds <torvalds@woody.osdl.org>
Fri, 8 Dec 2006 16:29:09 +0000 (08:29 -0800)
In VMSPLIT mode, kernel PGD might have more entries than user space.

Acked-by: Jens Axboe <jens.axboe@oracle.com>
Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/i386/kernel/smpboot.c

index 4bf0e3c83b8b3244536eb54a02d4d087c0b15cab..1e00b03163b9910735db18f3de8f36e6f971b195 100644 (file)
@@ -1118,7 +1118,7 @@ static int __cpuinit __smp_prepare_cpu(int cpu)
 
        /* init low mem mapping */
        clone_pgd_range(swapper_pg_dir, swapper_pg_dir + USER_PGD_PTRS,
-                       KERNEL_PGD_PTRS);
+                       min_t(unsigned long, KERNEL_PGD_PTRS, USER_PGD_PTRS));
        flush_tlb_all();
        schedule_work(&info.task);
        wait_for_completion(&done);