Message ID | 20211220084544.54902-1-mkfssion@mkfssion.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | vl: Add opts to device opts list when using JSON syntax for -device | expand |
Cc'ing Markus. On 12/20/21 09:45, MkfsSion wrote: > When using JSON syntax for -device, -set option can not find device > specified in JSON by id field. The following commandline is an example: > > $ qemu-system-x86_64 -device '{"id":"foo"}' -set device.foo.bar=1 > qemu-system-x86_64: -set device.foo.bar=1: there is no device "foo" defined > > The patch adds device opts to device opts list when a device opts get > parsed. > > Signed-off-by: MkfsSion <mkfssion@mkfssion.com> BTW per: https://www.qemu.org/docs/master/devel/submitting-a-patch.html#patch-emails-must-include-a-signed-off-by-line "Please use your real name to sign a patch (not an alias or acronym)." > --- > softmmu/vl.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/softmmu/vl.c b/softmmu/vl.c > index 620a1f1367..0dd5acbc1a 100644 > --- a/softmmu/vl.c > +++ b/softmmu/vl.c > @@ -3400,6 +3400,8 @@ void qemu_init(int argc, char **argv, char **envp) > loc_save(&opt->loc); > assert(opt->opts != NULL); > QTAILQ_INSERT_TAIL(&device_opts, opt, next); > + qemu_opts_from_qdict(qemu_find_opts_err("device", &error_fatal), > + opt->opts, &error_fatal); > } else { > if (!qemu_opts_parse_noisily(qemu_find_opts("device"), > optarg, true)) {
Sorry, the patch is not well tested and it causes duplicate devices creation. I have send another patch to the mailing list to fix the issue. On 2021/12/21 16:25, Philippe Mathieu-Daudé wrote: > Cc'ing Markus. > > On 12/20/21 09:45, MkfsSion wrote: >> When using JSON syntax for -device, -set option can not find device >> specified in JSON by id field. The following commandline is an example: >> >> $ qemu-system-x86_64 -device '{"id":"foo"}' -set device.foo.bar=1 >> qemu-system-x86_64: -set device.foo.bar=1: there is no device "foo" defined >> >> The patch adds device opts to device opts list when a device opts get >> parsed. >> >> Signed-off-by: MkfsSion <mkfssion@mkfssion.com> > > BTW per: > https://www.qemu.org/docs/master/devel/submitting-a-patch.html#patch-emails-must-include-a-signed-off-by-line > "Please use your real name to sign a patch (not an alias or acronym)." The issue has been fixed in new patch. > >> --- >> softmmu/vl.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/softmmu/vl.c b/softmmu/vl.c >> index 620a1f1367..0dd5acbc1a 100644 >> --- a/softmmu/vl.c >> +++ b/softmmu/vl.c >> @@ -3400,6 +3400,8 @@ void qemu_init(int argc, char **argv, char **envp) >> loc_save(&opt->loc); >> assert(opt->opts != NULL); >> QTAILQ_INSERT_TAIL(&device_opts, opt, next); >> + qemu_opts_from_qdict(qemu_find_opts_err("device", &error_fatal), >> + opt->opts, &error_fatal); >> } else { >> if (!qemu_opts_parse_noisily(qemu_find_opts("device"), >> optarg, true)) { >
diff --git a/softmmu/vl.c b/softmmu/vl.c index 620a1f1367..0dd5acbc1a 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -3400,6 +3400,8 @@ void qemu_init(int argc, char **argv, char **envp) loc_save(&opt->loc); assert(opt->opts != NULL); QTAILQ_INSERT_TAIL(&device_opts, opt, next); + qemu_opts_from_qdict(qemu_find_opts_err("device", &error_fatal), + opt->opts, &error_fatal); } else { if (!qemu_opts_parse_noisily(qemu_find_opts("device"), optarg, true)) {
When using JSON syntax for -device, -set option can not find device specified in JSON by id field. The following commandline is an example: $ qemu-system-x86_64 -device '{"id":"foo"}' -set device.foo.bar=1 qemu-system-x86_64: -set device.foo.bar=1: there is no device "foo" defined The patch adds device opts to device opts list when a device opts get parsed. Signed-off-by: MkfsSion <mkfssion@mkfssion.com> --- softmmu/vl.c | 2 ++ 1 file changed, 2 insertions(+)