From: Gleb Natapov Date: Thu, 18 Jun 2009 13:29:18 +0000 (+0300) Subject: Don't register cpu reset handler for cpu with APIC. X-Git-Tag: qemu-xen-4.2.0~6774 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=cd57c0f317c75cad3f553c76dbf59f261b69e33b;p=qemu-xen.git Don't register cpu reset handler for cpu with APIC. APIC reset handler already resets cpu, no need to reset it twice. Also register cpu_reset handler directly to make it impossible to add additional code to main_cpu_reset() by mistake. Signed-off-by: Gleb Natapov Signed-off-by: Anthony Liguori --- diff --git a/hw/pc.c b/hw/pc.c index 19021eafb6..86e5cfefbe 100644 --- a/hw/pc.c +++ b/hw/pc.c @@ -751,12 +751,6 @@ static void load_linux(target_phys_addr_t option_rom, generate_bootsect(option_rom, gpr, seg, 0); } -static void main_cpu_reset(void *opaque) -{ - CPUState *env = opaque; - cpu_reset(env); -} - static const int ide_iobase[2] = { 0x1f0, 0x170 }; static const int ide_iobase2[2] = { 0x3f6, 0x376 }; static const int ide_irq[2] = { 14, 15 }; @@ -884,9 +878,11 @@ static void pc_init1(ram_addr_t ram_size, } if ((env->cpuid_features & CPUID_APIC) || smp_cpus > 1) { env->cpuid_apic_id = env->cpu_index; + /* APIC reset callback resets cpu */ apic_init(env); + } else { + qemu_register_reset((QEMUResetHandler*)cpu_reset, 0, env); } - qemu_register_reset(main_cpu_reset, 0, env); } vmport_init();