summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Apfelbaum <marcel@redhat.com>2015-01-07 14:11:38 +0200
committerMichael Roth <mdroth@linux.vnet.ibm.com>2015-01-14 17:08:44 -0600
commitb316937d3851566c9bb3f885b26d195d8856a6be (patch)
treeb46b345ab6a1f6644b4b044a684760b8ec45b145
parent5b5c7bf8e5c0f1ba2ac15954a9d151f1c2e408ef (diff)
downloadqemu-b316937d3851566c9bb3f885b26d195d8856a6be.tar.gz
vl.c: fix regression when reading machine type from config file
After 'Machine as QOM' series the machine type input triggers the creation of the machine class. If the machine type is set in the configuration file, the machine class is not updated accordingly and remains the default. Fixed that by querying the machine options after the configuration file is loaded. Cc: qemu-stable@nongnu.org Reported-by: William Dauchy <william@gandi.net> Signed-off-by: Marcel Apfelbaum <marcel@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> (cherry picked from commit 364c3e6b8dd7912e01d19122d791b8c8f6df4f6c) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
-rw-r--r--vl.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/vl.c b/vl.c
index 3650f4fb74..653ee2c2af 100644
--- a/vl.c
+++ b/vl.c
@@ -3052,9 +3052,6 @@ int main(int argc, char **argv, char **envp)
exit(1);
}
switch(popt->index) {
- case QEMU_OPTION_M:
- machine_class = machine_parse(optarg);
- break;
case QEMU_OPTION_no_kvm_irqchip: {
olist = qemu_find_opts("machine");
qemu_opts_parse(olist, "kernel_irqchip=off", 0);
@@ -3672,16 +3669,13 @@ int main(int argc, char **argv, char **envp)
olist = qemu_find_opts("machine");
qemu_opts_parse(olist, "accel=kvm", 0);
break;
+ case QEMU_OPTION_M:
case QEMU_OPTION_machine:
olist = qemu_find_opts("machine");
opts = qemu_opts_parse(olist, optarg, 1);
if (!opts) {
exit(1);
}
- optarg = qemu_opt_get(opts, "type");
- if (optarg) {
- machine_class = machine_parse(optarg);
- }
break;
case QEMU_OPTION_no_kvm:
olist = qemu_find_opts("machine");
@@ -3964,6 +3958,13 @@ int main(int argc, char **argv, char **envp)
}
}
}
+
+ opts = qemu_get_machine_opts();
+ optarg = qemu_opt_get(opts, "type");
+ if (optarg) {
+ machine_class = machine_parse(optarg);
+ }
+
loc_set_none();
os_daemonize();