mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-09 18:44:58 -06:00
moxie: fix qemu-system-moxie failing to start with CLI "-cpu MoxieLite"
It 'works' with default CPU only because of bug in moxie_cpu_class_by_name() where it treats cpu_model as type name and default cpu_model also happens to be type name. But specifying explicitly cpu on CLI, ex: '-cpu MoxieLite', makes QEMU fail since moxie_cpu_class_by_name() doesn't traslate cpu_model to cpu type and fails to find corresponding object class. Fix moxie_cpu_class_by_name() to do proper cpu_model -> cpu type translation and fix default cpu_model to be cpu_model instead of being typename. Signed-off-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <1507211474-188400-15-git-send-email-imammedo@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
ddbcc16f29
commit
a7f981cc9f
2 changed files with 7 additions and 2 deletions
|
@ -116,7 +116,7 @@ static void moxiesim_init(MachineState *machine)
|
||||||
|
|
||||||
/* Init CPUs. */
|
/* Init CPUs. */
|
||||||
if (cpu_model == NULL) {
|
if (cpu_model == NULL) {
|
||||||
cpu_model = "MoxieLite-moxie-cpu";
|
cpu_model = "MoxieLite";
|
||||||
}
|
}
|
||||||
cpu = MOXIE_CPU(cpu_generic_init(TYPE_MOXIE_CPU, cpu_model));
|
cpu = MOXIE_CPU(cpu_generic_init(TYPE_MOXIE_CPU, cpu_model));
|
||||||
env = &cpu->env;
|
env = &cpu->env;
|
||||||
|
|
|
@ -83,7 +83,12 @@ static void moxie_cpu_initfn(Object *obj)
|
||||||
|
|
||||||
static ObjectClass *moxie_cpu_class_by_name(const char *cpu_model)
|
static ObjectClass *moxie_cpu_class_by_name(const char *cpu_model)
|
||||||
{
|
{
|
||||||
ObjectClass *oc = object_class_by_name(cpu_model);
|
ObjectClass *oc;
|
||||||
|
char *typename;
|
||||||
|
|
||||||
|
typename = g_strdup_printf("%s-" TYPE_MOXIE_CPU, cpu_model);
|
||||||
|
oc = object_class_by_name(typename);
|
||||||
|
g_free(typename);
|
||||||
if (oc != NULL && (!object_class_dynamic_cast(oc, TYPE_MOXIE_CPU) ||
|
if (oc != NULL && (!object_class_dynamic_cast(oc, TYPE_MOXIE_CPU) ||
|
||||||
object_class_is_abstract(oc))) {
|
object_class_is_abstract(oc))) {
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue