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(); | ... | ... |