target/s390x: Restrict CpuClass::get_crash_info() to system-mode
Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Laurent Vivier <laurent@vivier.eu> Tested-by: Laurent Vivier <laurent@vivier.eu> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20200522172510.25784-12-philmd@redhat.com> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
parent
b75c990080
commit
6b4bf66e33
@ -247,6 +247,7 @@ out:
|
||||
error_propagate(errp, err);
|
||||
}
|
||||
|
||||
#if !defined(CONFIG_USER_ONLY)
|
||||
static GuestPanicInformation *s390_cpu_get_crash_info(CPUState *cs)
|
||||
{
|
||||
GuestPanicInformation *panic_info;
|
||||
@ -256,11 +257,7 @@ static GuestPanicInformation *s390_cpu_get_crash_info(CPUState *cs)
|
||||
panic_info = g_malloc0(sizeof(GuestPanicInformation));
|
||||
|
||||
panic_info->type = GUEST_PANIC_INFORMATION_TYPE_S390;
|
||||
#if !defined(CONFIG_USER_ONLY)
|
||||
panic_info->u.s390.core = cpu->env.core_id;
|
||||
#else
|
||||
panic_info->u.s390.core = 0; /* sane default for non system emulation */
|
||||
#endif
|
||||
panic_info->u.s390.psw_mask = cpu->env.psw.mask;
|
||||
panic_info->u.s390.psw_addr = cpu->env.psw.addr;
|
||||
panic_info->u.s390.reason = cpu->env.crash_reason;
|
||||
@ -286,6 +283,7 @@ static void s390_cpu_get_crash_info_qom(Object *obj, Visitor *v,
|
||||
errp);
|
||||
qapi_free_GuestPanicInformation(panic_info);
|
||||
}
|
||||
#endif
|
||||
|
||||
static void s390_cpu_initfn(Object *obj)
|
||||
{
|
||||
@ -295,16 +293,16 @@ static void s390_cpu_initfn(Object *obj)
|
||||
cpu_set_cpustate_pointers(cpu);
|
||||
cs->halted = 1;
|
||||
cs->exception_index = EXCP_HLT;
|
||||
#if !defined(CONFIG_USER_ONLY)
|
||||
object_property_add(obj, "crash-information", "GuestPanicInformation",
|
||||
s390_cpu_get_crash_info_qom, NULL, NULL, NULL);
|
||||
s390_cpu_model_register_props(obj);
|
||||
#if !defined(CONFIG_USER_ONLY)
|
||||
cpu->env.tod_timer =
|
||||
timer_new_ns(QEMU_CLOCK_VIRTUAL, s390x_tod_timer, cpu);
|
||||
cpu->env.cpu_timer =
|
||||
timer_new_ns(QEMU_CLOCK_VIRTUAL, s390x_cpu_timer, cpu);
|
||||
s390_cpu_set_state(S390_CPU_STATE_STOPPED, cpu);
|
||||
#endif
|
||||
s390_cpu_model_register_props(obj);
|
||||
}
|
||||
|
||||
static void s390_cpu_finalize(Object *obj)
|
||||
@ -488,13 +486,13 @@ static void s390_cpu_class_init(ObjectClass *oc, void *data)
|
||||
cc->do_interrupt = s390_cpu_do_interrupt;
|
||||
#endif
|
||||
cc->dump_state = s390_cpu_dump_state;
|
||||
cc->get_crash_info = s390_cpu_get_crash_info;
|
||||
cc->set_pc = s390_cpu_set_pc;
|
||||
cc->gdb_read_register = s390_cpu_gdb_read_register;
|
||||
cc->gdb_write_register = s390_cpu_gdb_write_register;
|
||||
#ifndef CONFIG_USER_ONLY
|
||||
cc->get_phys_page_debug = s390_cpu_get_phys_page_debug;
|
||||
cc->vmsd = &vmstate_s390_cpu;
|
||||
cc->get_crash_info = s390_cpu_get_crash_info;
|
||||
cc->write_elf64_note = s390_cpu_write_elf64_note;
|
||||
#ifdef CONFIG_TCG
|
||||
cc->cpu_exec_interrupt = s390_cpu_exec_interrupt;
|
||||
|
Loading…
Reference in New Issue
Block a user