[PATCH] replace error_setg(&error_fatal, ...) with error_report()

Tudor Gheorghiu posted 1 patch 1 month, 2 weeks ago
hw/arm/allwinner-a10.c    | 5 +++--
hw/arm/allwinner-h3.c     | 4 ++--
hw/arm/allwinner-r40.c    | 4 ++--
hw/arm/xlnx-versal-virt.c | 4 ++--
hw/audio/soundhw.c        | 3 ++-
system/vl.c               | 3 ++-
6 files changed, 13 insertions(+), 10 deletions(-)
[PATCH] replace error_setg(&error_fatal, ...) with error_report()
Posted by Tudor Gheorghiu 1 month, 2 weeks ago
According to include/qapi/error.h:
* Please don't error_setg(&error_fatal, ...), use error_report() and
* exit(), because that's more obvious.

Patch updates all instances of error_setg(&error_fatal, ...) with
error_report(...), adds the explicit exit(1) and removes redundant
return statements.

Signed-off-by: Tudor Gheorghiu <tudor.reda@gmail.com>
Suggested-by: Thomas Huth <thuth@redhat.com>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2587
---
 hw/arm/allwinner-a10.c    | 5 +++--
 hw/arm/allwinner-h3.c     | 4 ++--
 hw/arm/allwinner-r40.c    | 4 ++--
 hw/arm/xlnx-versal-virt.c | 4 ++--
 hw/audio/soundhw.c        | 3 ++-
 system/vl.c               | 3 ++-
 6 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/hw/arm/allwinner-a10.c b/hw/arm/allwinner-a10.c
index 08cdff61e4..3cc5142832 100644
--- a/hw/arm/allwinner-a10.c
+++ b/hw/arm/allwinner-a10.c
@@ -17,6 +17,7 @@
 
 #include "qemu/osdep.h"
 #include "qapi/error.h"
+#include "qemu/error-report.h"
 #include "qemu/module.h"
 #include "hw/char/serial-mm.h"
 #include "hw/sysbus.h"
@@ -49,9 +50,9 @@ void allwinner_a10_bootrom_setup(AwA10State *s, BlockBackend *blk)
     g_autofree uint8_t *buffer = g_new0(uint8_t, rom_size);
 
     if (blk_pread(blk, 8 * KiB, rom_size, buffer, 0) < 0) {
-        error_setg(&error_fatal, "%s: failed to read BlockBackend data",
+        error_report("%s: failed to read BlockBackend data",
                    __func__);
-        return;
+        exit(1);
     }
 
     rom_add_blob("allwinner-a10.bootrom", buffer, rom_size,
diff --git a/hw/arm/allwinner-h3.c b/hw/arm/allwinner-h3.c
index 9bc57cd266..a1b4b1de1c 100644
--- a/hw/arm/allwinner-h3.c
+++ b/hw/arm/allwinner-h3.c
@@ -182,9 +182,9 @@ void allwinner_h3_bootrom_setup(AwH3State *s, BlockBackend *blk)
     g_autofree uint8_t *buffer = g_new0(uint8_t, rom_size);
 
     if (blk_pread(blk, 8 * KiB, rom_size, buffer, 0) < 0) {
-        error_setg(&error_fatal, "%s: failed to read BlockBackend data",
+        error_report("%s: failed to read BlockBackend data",
                    __func__);
-        return;
+        exit(1);
     }
 
     rom_add_blob("allwinner-h3.bootrom", buffer, rom_size,
diff --git a/hw/arm/allwinner-r40.c b/hw/arm/allwinner-r40.c
index ced73009d6..b197530c38 100644
--- a/hw/arm/allwinner-r40.c
+++ b/hw/arm/allwinner-r40.c
@@ -231,9 +231,9 @@ bool allwinner_r40_bootrom_setup(AwR40State *s, BlockBackend *blk, int unit)
     struct boot_file_head *head = (struct boot_file_head *)buffer;
 
     if (blk_pread(blk, 8 * KiB, rom_size, buffer, 0) < 0) {
-        error_setg(&error_fatal, "%s: failed to read BlockBackend data",
+        error_report("%s: failed to read BlockBackend data",
                    __func__);
-        return false;
+        exit(1);
     }
 
     /* we only check the magic string here. */
diff --git a/hw/arm/xlnx-versal-virt.c b/hw/arm/xlnx-versal-virt.c
index 962f98fee2..8b12d3e7cb 100644
--- a/hw/arm/xlnx-versal-virt.c
+++ b/hw/arm/xlnx-versal-virt.c
@@ -761,9 +761,9 @@ static void versal_virt_init(MachineState *machine)
             if (!flash_klass ||
                 object_class_is_abstract(flash_klass) ||
                 !object_class_dynamic_cast(flash_klass, TYPE_M25P80)) {
-                error_setg(&error_fatal, "'%s' is either abstract or"
+                error_report("'%s' is either abstract or"
                        " not a subtype of m25p80", s->ospi_model);
-                return;
+                exit(1);
             }
         }
 
diff --git a/hw/audio/soundhw.c b/hw/audio/soundhw.c
index b387b0ef7d..d18fd9fa05 100644
--- a/hw/audio/soundhw.c
+++ b/hw/audio/soundhw.c
@@ -88,7 +88,8 @@ void select_soundhw(const char *name, const char *audiodev)
     struct soundhw *c;
 
     if (selected) {
-        error_setg(&error_fatal, "only one -soundhw option is allowed");
+        error_report("only one -soundhw option is allowed");
+        exit(1);
     }
 
     for (c = soundhw; c->name; ++c) {
diff --git a/system/vl.c b/system/vl.c
index fe547ca47c..50c138eece 100644
--- a/system/vl.c
+++ b/system/vl.c
@@ -1841,7 +1841,8 @@ static void object_option_parse(const char *str)
 
         type = qemu_opt_get(opts, "qom-type");
         if (!type) {
-            error_setg(&error_fatal, QERR_MISSING_PARAMETER, "qom-type");
+            error_report(QERR_MISSING_PARAMETER, "qom-type");
+            exit(1);
         }
         if (user_creatable_print_help(type, opts)) {
             exit(0);
-- 
2.39.5 (Apple Git-154)
Re: [PATCH] replace error_setg(&error_fatal, ...) with error_report()
Posted by Michael Tokarev 1 month ago
08.10.2024 01:27, Tudor Gheorghiu wrote:
> According to include/qapi/error.h:
> * Please don't error_setg(&error_fatal, ...), use error_report() and
> * exit(), because that's more obvious.
> 
> Patch updates all instances of error_setg(&error_fatal, ...) with
> error_report(...), adds the explicit exit(1) and removes redundant
> return statements.
> 
> Signed-off-by: Tudor Gheorghiu <tudor.reda@gmail.com>
> Suggested-by: Thomas Huth <thuth@redhat.com>
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2587

Reviewed-by: Michael Tokarev <mjt@tls.msk.ru>


> @@ -49,9 +50,9 @@ void allwinner_a10_bootrom_setup(AwA10State *s, BlockBackend *blk)
>       g_autofree uint8_t *buffer = g_new0(uint8_t, rom_size);
>   
>       if (blk_pread(blk, 8 * KiB, rom_size, buffer, 0) < 0) {
> -        error_setg(&error_fatal, "%s: failed to read BlockBackend data",
> +        error_report("%s: failed to read BlockBackend data",
>                      __func__);
> -        return;
> +        exit(1);
>       }

I queued this patch to qemu-trivial, with additional change, - folding this __func__ to
the previous line, since there's no need to split the line anymore.  Like this:

      if (blk_pread(blk, 8 * KiB, rom_size, buffer, 0) < 0) {
-        error_setg(&error_fatal, "%s: failed to read BlockBackend data",
-                   __func__);
-        return;
+        error_report("%s: failed to read BlockBackend data", __func__);
+        exit(1);
      }

Here and in 2 other allwinner-* files.

Thanks,

/mjt
Re: [PATCH] replace error_setg(&error_fatal, ...) with error_report()
Posted by Thomas Huth 1 month, 2 weeks ago
On 08/10/2024 00.27, Tudor Gheorghiu wrote:
> According to include/qapi/error.h:
> * Please don't error_setg(&error_fatal, ...), use error_report() and
> * exit(), because that's more obvious.
> 
> Patch updates all instances of error_setg(&error_fatal, ...) with
> error_report(...), adds the explicit exit(1) and removes redundant
> return statements.
> 
> Signed-off-by: Tudor Gheorghiu <tudor.reda@gmail.com>
> Suggested-by: Thomas Huth <thuth@redhat.com>
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2587
> ---
>   hw/arm/allwinner-a10.c    | 5 +++--
>   hw/arm/allwinner-h3.c     | 4 ++--
>   hw/arm/allwinner-r40.c    | 4 ++--
>   hw/arm/xlnx-versal-virt.c | 4 ++--
>   hw/audio/soundhw.c        | 3 ++-
>   system/vl.c               | 3 ++-
>   6 files changed, 13 insertions(+), 10 deletions(-)

Reviewed-by: Thomas Huth <thuth@redhat.com>