Commit 5a790cc4 authored by Bharata B Rao's avatar Bharata B Rao Committed by Andreas Färber
Browse files

cpu: Add Error argument to cpu_exec_init()



Add an Error argument to cpu_exec_init() to let users collect the
error. This is in preparation to change the CPU enumeration logic
in cpu_exec_init(). With the new enumeration logic, cpu_exec_init()
can fail if cpu_index values corresponding to max_cpus have already
been handed out.

Since all current callers of cpu_exec_init() are from instance_init,
use error_abort Error argument to abort in case of an error.

Signed-off-by: default avatarBharata B Rao <bharata@linux.vnet.ibm.com>
Reviewed-by: default avatarEduardo Habkost <ehabkost@redhat.com>
Reviewed-by: default avatarIgor Mammedov <imammedo@redhat.com>
Reviewed-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
Reviewed-by: default avatarPeter Crosthwaite <peter.crosthwaite@xilinx.com>
Acked-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Signed-off-by: default avatarPeter Crosthwaite <crosthwaite.peter@gmail.com>
Signed-off-by: default avatarAndreas Färber <afaerber@suse.de>
parent 291135b5
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -526,7 +526,7 @@ void tcg_cpu_address_space_init(CPUState *cpu, AddressSpace *as)
}
#endif

void cpu_exec_init(CPUArchState *env)
void cpu_exec_init(CPUArchState *env, Error **errp)
{
    CPUState *cpu = ENV_GET_CPU(env);
    CPUClass *cc = CPU_GET_CLASS(cpu);
+1 −1
Original line number Diff line number Diff line
@@ -88,7 +88,7 @@ void QEMU_NORETURN cpu_io_recompile(CPUState *cpu, uintptr_t retaddr);
TranslationBlock *tb_gen_code(CPUState *cpu,
                              target_ulong pc, target_ulong cs_base, int flags,
                              int cflags);
void cpu_exec_init(CPUArchState *env);
void cpu_exec_init(CPUArchState *env, Error **errp);
void QEMU_NORETURN cpu_loop_exit(CPUState *cpu);

#if !defined(CONFIG_USER_ONLY)
+1 −1
Original line number Diff line number Diff line
@@ -257,7 +257,7 @@ static void alpha_cpu_initfn(Object *obj)
    CPUAlphaState *env = &cpu->env;

    cs->env_ptr = env;
    cpu_exec_init(env);
    cpu_exec_init(env, &error_abort);
    tlb_flush(cs, 1);

    alpha_translate_init();
+1 −1
Original line number Diff line number Diff line
@@ -392,7 +392,7 @@ static void arm_cpu_initfn(Object *obj)
    uint32_t Aff1, Aff0;

    cs->env_ptr = &cpu->env;
    cpu_exec_init(&cpu->env);
    cpu_exec_init(&cpu->env, &error_abort);
    cpu->cp_regs = g_hash_table_new_full(g_int_hash, g_int_equal,
                                         g_free, g_free);

+1 −1
Original line number Diff line number Diff line
@@ -170,7 +170,7 @@ static void cris_cpu_initfn(Object *obj)
    static bool tcg_initialized;

    cs->env_ptr = env;
    cpu_exec_init(env);
    cpu_exec_init(env, &error_abort);

    env->pregs[PR_VR] = ccc->vr;

Loading