Make -machine/-enable-kvm options merge into a single list
Make the "machine" option list use list merging, so that multiple -machine arguments (and the -enable-kvm argument) all merge together into a single list. Drop the calls to qemu_opts_reset() which meant that only the last -machine or -enable-kvm option had any effect. This fixes the bug where "-enable-kvm -machine foo" would ignore the '-enable-kvm' option, and "-machine foo -enable-kvm" would ignore the '-machine foo' option. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
This commit is contained in:
parent
da93318a9f
commit
9de36b1a7c
@ -547,6 +547,7 @@ QemuOptsList qemu_option_rom_opts = {
|
|||||||
static QemuOptsList qemu_machine_opts = {
|
static QemuOptsList qemu_machine_opts = {
|
||||||
.name = "machine",
|
.name = "machine",
|
||||||
.implied_opt_name = "type",
|
.implied_opt_name = "type",
|
||||||
|
.merge_lists = true,
|
||||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_machine_opts.head),
|
.head = QTAILQ_HEAD_INITIALIZER(qemu_machine_opts.head),
|
||||||
.desc = {
|
.desc = {
|
||||||
{
|
{
|
||||||
|
2
vl.c
2
vl.c
@ -2882,12 +2882,10 @@ int main(int argc, char **argv, char **envp)
|
|||||||
break;
|
break;
|
||||||
case QEMU_OPTION_enable_kvm:
|
case QEMU_OPTION_enable_kvm:
|
||||||
olist = qemu_find_opts("machine");
|
olist = qemu_find_opts("machine");
|
||||||
qemu_opts_reset(olist);
|
|
||||||
qemu_opts_parse(olist, "accel=kvm", 0);
|
qemu_opts_parse(olist, "accel=kvm", 0);
|
||||||
break;
|
break;
|
||||||
case QEMU_OPTION_machine:
|
case QEMU_OPTION_machine:
|
||||||
olist = qemu_find_opts("machine");
|
olist = qemu_find_opts("machine");
|
||||||
qemu_opts_reset(olist);
|
|
||||||
opts = qemu_opts_parse(olist, optarg, 1);
|
opts = qemu_opts_parse(olist, optarg, 1);
|
||||||
if (!opts) {
|
if (!opts) {
|
||||||
fprintf(stderr, "parse error: %s\n", optarg);
|
fprintf(stderr, "parse error: %s\n", optarg);
|
||||||
|
Loading…
Reference in New Issue
Block a user