Index: head-2006-08-08/drivers/xen/core/smpboot.c =================================================================== --- head-2006-08-08.orig/drivers/xen/core/smpboot.c 2006-08-11 15:33:05.000000000 +0200 +++ head-2006-08-08/drivers/xen/core/smpboot.c 2006-08-11 15:34:19.000000000 +0200 @@ -253,6 +253,8 @@ void __init smp_prepare_cpus(unsigned in for_each_cpu_mask (cpu, cpu_possible_map) { if (cpu == 0) continue; + if (num_present_cpus() >= max_cpus) + break; #ifdef __x86_64__ gdt_descr = &cpu_gdt_descr[cpu]; @@ -301,7 +303,7 @@ void __init smp_prepare_cpus(unsigned in init_xenbus_allowed_cpumask(); /* Currently, Xen gives no dynamic NUMA/HT info. */ - for (cpu = 1; cpu < NR_CPUS; cpu++) { + for_each_present_cpu(cpu) { cpu_sibling_map[cpu] = cpumask_of_cpu(cpu); cpu_core_map[cpu] = cpumask_of_cpu(cpu); }