Revision 427bd8d6

b/hw/pc.c
810 810
    }
811 811
}
812 812

  
813
static void bsp_cpu_reset(void *opaque)
813
static void pc_cpu_reset(void *opaque)
814 814
{
815 815
    CPUState *env = opaque;
816 816

  
817 817
    cpu_reset(env);
818
    env->halted = 0;
819
}
820

  
821
static void ap_cpu_reset(void *opaque)
822
{
823
    CPUState *env = opaque;
824

  
825
    cpu_reset(env);
826
    env->halted = 1;
818
    env->halted = !cpu_is_bsp(env);
827 819
}
828 820

  
829 821
static CPUState *pc_new_cpu(const char *cpu_model)
......
837 829
    }
838 830
    if ((env->cpuid_features & CPUID_APIC) || smp_cpus > 1) {
839 831
        env->cpuid_apic_id = env->cpu_index;
840
        /* APIC reset callback resets cpu */
841 832
        env->apic_state = apic_init(env, env->cpuid_apic_id);
842 833
    }
843
    if (cpu_is_bsp(env)) {
844
        qemu_register_reset(bsp_cpu_reset, env);
845
        env->halted = 0;
846
    } else {
847
        qemu_register_reset(ap_cpu_reset, env);
848
        env->halted = 1;
849
    }
834
    qemu_register_reset(pc_cpu_reset, env);
835
    pc_cpu_reset(env);
850 836
    return env;
851 837
}
852 838

  

Also available in: Unified diff