Commit ecf40bea authored by Eduardo Habkost's avatar Eduardo Habkost Committed by Anthony Liguori
Browse files

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: default avatarEduardo Habkost <ehabkost@redhat.com>
Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
parent 885bb036
Loading
Loading
Loading
Loading
+13 −7
Original line number Diff line number Diff line
@@ -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;
                }
                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