Index: head-2006-05-03/drivers/xen/core/smpboot.c =================================================================== --- head-2006-05-03.orig/drivers/xen/core/smpboot.c 2006-04-24 11:43:44.000000000 +0200 +++ head-2006-05-03/drivers/xen/core/smpboot.c 2006-05-08 14:08:25.000000000 +0200 @@ -148,9 +148,23 @@ static void xen_smp_intr_exit(unsigned i static void cpu_bringup(void) { + unsigned cpu; + struct cpuinfo_x86 *c; + cpu_init(); touch_softlockup_watchdog(); preempt_disable(); + + cpu = smp_processor_id(); + c = cpu_data + cpu; + *c = boot_cpu_data; + identify_cpu(c); + /* We fake a single-core, single-thread configuration, short of + knowing the real setup. c->booted_cores is always 1 (inherited + from boot_cpu_data). */ + phys_proc_id[cpu] = cpu; + print_cpu_info(c); + local_irq_enable(); cpu_idle(); } @@ -230,6 +244,7 @@ void __init smp_prepare_cpus(unsigned in struct Xgt_desc_struct *gdt_descr; #endif + boot_cpu_data.booted_cores = 1; cpu_data[0] = boot_cpu_data; cpu_2_logical_apicid[0] = 0;