diff mbox

[08/11] pseries: Clean up error handling in spapr_rtas_register()

Message ID 1449792685-17000-9-git-send-email-david@gibson.dropbear.id.au
State New
Headers show

Commit Message

David Gibson Dec. 11, 2015, 12:11 a.m. UTC
The errors detected in this function indicate problems with the rest of
the machine type code, rather than configuration or runtime problems.

Use error_setg() and &error_abort instead of explicit fprintf() and exit().

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/ppc/spapr_rtas.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

Comments

Thomas Huth Dec. 11, 2015, 10:06 a.m. UTC | #1
On 11/12/15 01:11, David Gibson wrote:
> The errors detected in this function indicate problems with the rest of
> the machine type code, rather than configuration or runtime problems.
> 
> Use error_setg() and &error_abort instead of explicit fprintf() and exit().
> 
> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
> ---
>  hw/ppc/spapr_rtas.c | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
> index 34b12a3..db4a675 100644
> --- a/hw/ppc/spapr_rtas.c
> +++ b/hw/ppc/spapr_rtas.c
> @@ -649,15 +649,14 @@ target_ulong spapr_rtas_call(PowerPCCPU *cpu, sPAPRMachineState *spapr,
>  void spapr_rtas_register(int token, const char *name, spapr_rtas_fn fn)
>  {
>      if (!((token >= RTAS_TOKEN_BASE) && (token < RTAS_TOKEN_MAX))) {
> -        fprintf(stderr, "RTAS invalid token 0x%x\n", token);
> -        exit(1);
> +        error_setg(&error_abort, "RTAS invalid token 0x%x", token);
>      }
>  
>      token -= RTAS_TOKEN_BASE;
>      if (rtas_table[token].name) {
> -        fprintf(stderr, "RTAS call \"%s\" is registered already as 0x%x\n",
> -                rtas_table[token].name, token);
> -        exit(1);
> +        error_setg(&error_abort,
> +                   "RTAS call \"%s\" is registered already as 0x%x",
> +                   rtas_table[token].name, token);
>      }

As with the last patch, I also think these error_setg(&error_abort, ...)
are rather ugly. Maybe use error_report() + abort() instead?

 Thomas
diff mbox

Patch

diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
index 34b12a3..db4a675 100644
--- a/hw/ppc/spapr_rtas.c
+++ b/hw/ppc/spapr_rtas.c
@@ -649,15 +649,14 @@  target_ulong spapr_rtas_call(PowerPCCPU *cpu, sPAPRMachineState *spapr,
 void spapr_rtas_register(int token, const char *name, spapr_rtas_fn fn)
 {
     if (!((token >= RTAS_TOKEN_BASE) && (token < RTAS_TOKEN_MAX))) {
-        fprintf(stderr, "RTAS invalid token 0x%x\n", token);
-        exit(1);
+        error_setg(&error_abort, "RTAS invalid token 0x%x", token);
     }
 
     token -= RTAS_TOKEN_BASE;
     if (rtas_table[token].name) {
-        fprintf(stderr, "RTAS call \"%s\" is registered already as 0x%x\n",
-                rtas_table[token].name, token);
-        exit(1);
+        error_setg(&error_abort,
+                   "RTAS call \"%s\" is registered already as 0x%x",
+                   rtas_table[token].name, token);
     }
 
     rtas_table[token].name = name;