Commit 364c3e6b authored by Marcel Apfelbaum's avatar Marcel Apfelbaum Committed by Paolo Bonzini
Browse files

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: default avatarWilliam Dauchy <william@gandi.net>
Signed-off-by: default avatarMarcel Apfelbaum <marcel@redhat.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent e76d4420
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -2796,9 +2796,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);
@@ -3420,16 +3417,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");
@@ -3752,6 +3746,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();