From 63cf6dd1ab9d7f8d2c35006e93c5d6b2f4d22f6e Mon Sep 17 00:00:00 2001 From: Gleb Natapov Date: Thu, 18 Jun 2009 16:29:18 +0300 Subject: [PATCH] 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 --- hw/pc.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/hw/pc.c b/hw/pc.c index 19021ea..86e5cfe 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(); -- 2.7.4