diff options
author | Igor Mammedov <imammedo@redhat.com> | 2017-10-05 15:50:48 +0200 |
---|---|---|
committer | Eduardo Habkost <ehabkost@redhat.com> | 2017-10-27 16:03:54 +0200 |
commit | a7f981cc9f3e5a99c6690c144ba1d6a77394c39b (patch) | |
tree | ff435730637b2ec776421b50d98078ce6f409ae4 /target | |
parent | ddbcc16f29d41176769881ca40830015e249c749 (diff) |
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>
Diffstat (limited to 'target')
-rw-r--r-- | target/moxie/cpu.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/target/moxie/cpu.c b/target/moxie/cpu.c index 24ab3f3708..44441b2cf2 100644 --- a/target/moxie/cpu.c +++ b/target/moxie/cpu.c @@ -83,7 +83,12 @@ static void moxie_cpu_initfn(Object *obj) 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) || object_class_is_abstract(oc))) { return NULL; |