diff mbox series

[2/4] spapr: Use error_append_hint() in spapr_reallocate_hpt()

Message ID 160371604030.305923.17464161378167312662.stgit@bahia.lan
State Superseded
Headers show
Series spapr: Error handling fixes and cleanups (round 5) | expand

Commit Message

Greg Kurz Oct. 26, 2020, 12:40 p.m. UTC
Hints should be added with the dedicated error_append_hint() API
because we don't want to print them when using QMP. This requires
to insert ERRP_GUARD as explained in "qapi/error.h".

Signed-off-by: Greg Kurz <groug@kaod.org>
---
 hw/ppc/spapr.c |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

Comments

David Gibson Oct. 27, 2020, 1:57 a.m. UTC | #1
On Mon, Oct 26, 2020 at 01:40:40PM +0100, Greg Kurz wrote:
> Hints should be added with the dedicated error_append_hint() API

> because we don't want to print them when using QMP. This requires

> to insert ERRP_GUARD as explained in "qapi/error.h".

> 

> Signed-off-by: Greg Kurz <groug@kaod.org>


Applied to ppc-for-5.2.

> ---

>  hw/ppc/spapr.c |    8 +++++---

>  1 file changed, 5 insertions(+), 3 deletions(-)

> 

> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c

> index f098d0ee6d98..f51b663f7dcb 100644

> --- a/hw/ppc/spapr.c

> +++ b/hw/ppc/spapr.c

> @@ -1486,6 +1486,7 @@ void spapr_free_hpt(SpaprMachineState *spapr)

>  void spapr_reallocate_hpt(SpaprMachineState *spapr, int shift,

>                            Error **errp)

>  {

> +    ERRP_GUARD();

>      long rc;

>  

>      /* Clean up any HPT info from a previous boot */

> @@ -1500,17 +1501,18 @@ void spapr_reallocate_hpt(SpaprMachineState *spapr, int shift,

>  

>      if (rc < 0) {

>          /* kernel-side HPT needed, but couldn't allocate one */

> -        error_setg_errno(errp, errno,

> -                         "Failed to allocate KVM HPT of order %d (try smaller maxmem?)",

> +        error_setg_errno(errp, errno, "Failed to allocate KVM HPT of order %d",

>                           shift);

> +        error_append_hint(errp, "Try smaller maxmem?\n");

>          /* This is almost certainly fatal, but if the caller really

>           * wants to carry on with shift == 0, it's welcome to try */

>      } else if (rc > 0) {

>          /* kernel-side HPT allocated */

>          if (rc != shift) {

>              error_setg(errp,

> -                       "Requested order %d HPT, but kernel allocated order %ld (try smaller maxmem?)",

> +                       "Requested order %d HPT, but kernel allocated order %ld",

>                         shift, rc);

> +            error_append_hint(errp, "Try smaller maxmem?\n");

>          }

>  

>          spapr->htab_shift = shift;

> 

> 


-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson
diff mbox series

Patch

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index f098d0ee6d98..f51b663f7dcb 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -1486,6 +1486,7 @@  void spapr_free_hpt(SpaprMachineState *spapr)
 void spapr_reallocate_hpt(SpaprMachineState *spapr, int shift,
                           Error **errp)
 {
+    ERRP_GUARD();
     long rc;
 
     /* Clean up any HPT info from a previous boot */
@@ -1500,17 +1501,18 @@  void spapr_reallocate_hpt(SpaprMachineState *spapr, int shift,
 
     if (rc < 0) {
         /* kernel-side HPT needed, but couldn't allocate one */
-        error_setg_errno(errp, errno,
-                         "Failed to allocate KVM HPT of order %d (try smaller maxmem?)",
+        error_setg_errno(errp, errno, "Failed to allocate KVM HPT of order %d",
                          shift);
+        error_append_hint(errp, "Try smaller maxmem?\n");
         /* This is almost certainly fatal, but if the caller really
          * wants to carry on with shift == 0, it's welcome to try */
     } else if (rc > 0) {
         /* kernel-side HPT allocated */
         if (rc != shift) {
             error_setg(errp,
-                       "Requested order %d HPT, but kernel allocated order %ld (try smaller maxmem?)",
+                       "Requested order %d HPT, but kernel allocated order %ld",
                        shift, rc);
+            error_append_hint(errp, "Try smaller maxmem?\n");
         }
 
         spapr->htab_shift = shift;