Re: [Qemu-devel] [PATCH 21/31] vl: Clean up error reporting in mon_init_func()
Hi On Mon, Oct 8, 2018 at 9:37 PM Markus Armbruster wrote: > > Calling error_report() in a function that takes an Error ** argument > is suspicious. mon_init_func() does that, and then fails without > setting an error. Its caller main(), via qemu_opts_foreach(), is fine > with it, but clean it up anyway. > > Signed-off-by: Markus Armbruster Reviewed-by: Marc-André Lureau > --- > vl.c | 14 ++ > 1 file changed, 6 insertions(+), 8 deletions(-) > > diff --git a/vl.c b/vl.c > index 3adc9dbe4f..1009d708a0 100644 > --- a/vl.c > +++ b/vl.c > @@ -2270,8 +2270,8 @@ static int mon_init_func(void *opaque, QemuOpts *opts, > Error **errp) > } else if (strcmp(mode, "control") == 0) { > flags = MONITOR_USE_CONTROL; > } else { > -error_report("unknown monitor mode \"%s\"", mode); > -exit(1); > +error_setg(errp, "unknown monitor mode \"%s\"", mode); > +return -1; > } > > if (qemu_opt_get_bool(opts, "pretty", 0)) > @@ -2285,8 +2285,8 @@ static int mon_init_func(void *opaque, QemuOpts *opts, > Error **errp) > chardev = qemu_opt_get(opts, "chardev"); > chr = qemu_chr_find(chardev); > if (chr == NULL) { > -error_report("chardev \"%s\" not found", chardev); > -exit(1); > +error_setg(errp, "chardev \"%s\" not found", chardev); > +return -1; > } > > monitor_init(chr, flags); > @@ -4365,10 +4365,8 @@ int main(int argc, char **argv, char **envp) > default_drive(default_floppy, snapshot, IF_FLOPPY, 0, FD_OPTS); > default_drive(default_sdcard, snapshot, IF_SD, 0, SD_OPTS); > > -if (qemu_opts_foreach(qemu_find_opts("mon"), > - mon_init_func, NULL, NULL)) { > -exit(1); > -} > +qemu_opts_foreach(qemu_find_opts("mon"), > + mon_init_func, NULL, &error_fatal); > > if (foreach_device_config(DEV_SERIAL, serial_parse) < 0) > exit(1); > -- > 2.17.1 > > -- Marc-André Lureau
Re: [Qemu-devel] [PATCH 21/31] vl: Clean up error reporting in mon_init_func()
On 08/10/2018 19:31, Markus Armbruster wrote: > Calling error_report() in a function that takes an Error ** argument > is suspicious. mon_init_func() does that, and then fails without > setting an error. Its caller main(), via qemu_opts_foreach(), is fine > with it, but clean it up anyway. > > Signed-off-by: Markus Armbruster Reviewed-by: Philippe Mathieu-Daudé > --- > vl.c | 14 ++ > 1 file changed, 6 insertions(+), 8 deletions(-) > > diff --git a/vl.c b/vl.c > index 3adc9dbe4f..1009d708a0 100644 > --- a/vl.c > +++ b/vl.c > @@ -2270,8 +2270,8 @@ static int mon_init_func(void *opaque, QemuOpts *opts, > Error **errp) > } else if (strcmp(mode, "control") == 0) { > flags = MONITOR_USE_CONTROL; > } else { > -error_report("unknown monitor mode \"%s\"", mode); > -exit(1); > +error_setg(errp, "unknown monitor mode \"%s\"", mode); > +return -1; > } > > if (qemu_opt_get_bool(opts, "pretty", 0)) > @@ -2285,8 +2285,8 @@ static int mon_init_func(void *opaque, QemuOpts *opts, > Error **errp) > chardev = qemu_opt_get(opts, "chardev"); > chr = qemu_chr_find(chardev); > if (chr == NULL) { > -error_report("chardev \"%s\" not found", chardev); > -exit(1); > +error_setg(errp, "chardev \"%s\" not found", chardev); > +return -1; > } > > monitor_init(chr, flags); > @@ -4365,10 +4365,8 @@ int main(int argc, char **argv, char **envp) > default_drive(default_floppy, snapshot, IF_FLOPPY, 0, FD_OPTS); > default_drive(default_sdcard, snapshot, IF_SD, 0, SD_OPTS); > > -if (qemu_opts_foreach(qemu_find_opts("mon"), > - mon_init_func, NULL, NULL)) { > -exit(1); > -} > +qemu_opts_foreach(qemu_find_opts("mon"), > + mon_init_func, NULL, &error_fatal); > > if (foreach_device_config(DEV_SERIAL, serial_parse) < 0) > exit(1); >
[Qemu-devel] [PATCH 21/31] vl: Clean up error reporting in mon_init_func()
Calling error_report() in a function that takes an Error ** argument is suspicious. mon_init_func() does that, and then fails without setting an error. Its caller main(), via qemu_opts_foreach(), is fine with it, but clean it up anyway. Signed-off-by: Markus Armbruster --- vl.c | 14 ++ 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/vl.c b/vl.c index 3adc9dbe4f..1009d708a0 100644 --- a/vl.c +++ b/vl.c @@ -2270,8 +2270,8 @@ static int mon_init_func(void *opaque, QemuOpts *opts, Error **errp) } else if (strcmp(mode, "control") == 0) { flags = MONITOR_USE_CONTROL; } else { -error_report("unknown monitor mode \"%s\"", mode); -exit(1); +error_setg(errp, "unknown monitor mode \"%s\"", mode); +return -1; } if (qemu_opt_get_bool(opts, "pretty", 0)) @@ -2285,8 +2285,8 @@ static int mon_init_func(void *opaque, QemuOpts *opts, Error **errp) chardev = qemu_opt_get(opts, "chardev"); chr = qemu_chr_find(chardev); if (chr == NULL) { -error_report("chardev \"%s\" not found", chardev); -exit(1); +error_setg(errp, "chardev \"%s\" not found", chardev); +return -1; } monitor_init(chr, flags); @@ -4365,10 +4365,8 @@ int main(int argc, char **argv, char **envp) default_drive(default_floppy, snapshot, IF_FLOPPY, 0, FD_OPTS); default_drive(default_sdcard, snapshot, IF_SD, 0, SD_OPTS); -if (qemu_opts_foreach(qemu_find_opts("mon"), - mon_init_func, NULL, NULL)) { -exit(1); -} +qemu_opts_foreach(qemu_find_opts("mon"), + mon_init_func, NULL, &error_fatal); if (foreach_device_config(DEV_SERIAL, serial_parse) < 0) exit(1); -- 2.17.1