Commit cd57c0f317c75cad3f553c76dbf59f261b69e33b
Committed by
Anthony Liguori
1 parent
c2cc47a4
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 <gleb@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Showing
1 changed file
with
3 additions
and
7 deletions
hw/pc.c
... | ... | @@ -751,12 +751,6 @@ static void load_linux(target_phys_addr_t option_rom, |
751 | 751 | generate_bootsect(option_rom, gpr, seg, 0); |
752 | 752 | } |
753 | 753 | |
754 | -static void main_cpu_reset(void *opaque) | |
755 | -{ | |
756 | - CPUState *env = opaque; | |
757 | - cpu_reset(env); | |
758 | -} | |
759 | - | |
760 | 754 | static const int ide_iobase[2] = { 0x1f0, 0x170 }; |
761 | 755 | static const int ide_iobase2[2] = { 0x3f6, 0x376 }; |
762 | 756 | static const int ide_irq[2] = { 14, 15 }; |
... | ... | @@ -884,9 +878,11 @@ static void pc_init1(ram_addr_t ram_size, |
884 | 878 | } |
885 | 879 | if ((env->cpuid_features & CPUID_APIC) || smp_cpus > 1) { |
886 | 880 | env->cpuid_apic_id = env->cpu_index; |
881 | + /* APIC reset callback resets cpu */ | |
887 | 882 | apic_init(env); |
883 | + } else { | |
884 | + qemu_register_reset((QEMUResetHandler*)cpu_reset, 0, env); | |
888 | 885 | } |
889 | - qemu_register_reset(main_cpu_reset, 0, env); | |
890 | 886 | } |
891 | 887 | |
892 | 888 | vmport_init(); | ... | ... |