aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEduardo Habkost <ehabkost@redhat.com>2012-03-09 16:19:07 -0300
committerAnthony Liguori <aliguori@us.ibm.com>2012-03-12 14:05:26 -0500
commitecf40beae7dcbb057d4f115207f9d8276832a774 (patch)
treeebe45364ed67a75093e41d16f0583bc45b2d289b
parent885bb0369a4f0abe2c0185178f3cb347cb02cdf1 (diff)
initialize CPU model list after handling -readconfig options
To properly load cpudefs using -readconfig, we have to call cpudef_init() after finishing the command-line option handling. Consequently, the handling of "-cpu ?" has to be done after the command-line option handling loop, too. Without this patch, "-readconfig configfile -cpu ?" fails to list the CPU definitions read from 'configfile'. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r--vl.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/vl.c b/vl.c
index 97ab2b9c1a..65f11f200d 100644
--- a/vl.c
+++ b/vl.c
@@ -2359,7 +2359,6 @@ int main(int argc, char **argv, char **envp)
exit(1);
}
}
- cpudef_init();
/* second pass of option parsing */
optind = 1;
@@ -2382,12 +2381,7 @@ int main(int argc, char **argv, char **envp)
break;
case QEMU_OPTION_cpu:
/* hw initialization will check this */
- if (*optarg == '?') {
- list_cpus(stdout, &fprintf, optarg);
- exit(0);
- } else {
- cpu_model = optarg;
- }
+ cpu_model = optarg;
break;
case QEMU_OPTION_hda:
{
@@ -3191,6 +3185,18 @@ int main(int argc, char **argv, char **envp)
}
loc_set_none();
+ /* Init CPU def lists, based on config
+ * - Must be called after all the qemu_read_config_file() calls
+ * - Must be called before list_cpus()
+ * - Must be called before machine->init()
+ */
+ cpudef_init();
+
+ if (cpu_model && *cpu_model == '?') {
+ list_cpus(stdout, &fprintf, optarg);
+ exit(0);
+ }
+
/* Open the logfile at this point, if necessary. We can't open the logfile
* when encountering either of the logging options (-d or -D) because the
* other one may be encountered later on the command line, changing the