Re: [Qemu-devel] [PATCH 21/31] vl: Clean up error reporting in mon_init_func()

2018-10-09 Thread Marc-André Lureau
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()

2018-10-08 Thread Philippe Mathieu-Daudé
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()

2018-10-08 Thread Markus Armbruster
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