diff mbox series

[04/17] ppc: Pass local error object pointer to error_append_hint()

Message ID 156871565600.196432.9246692833113774428.stgit@bahia.lan (mailing list archive)
State New, archived
Headers show
Series Fix usage of error_append_hint() | expand

Commit Message

Greg Kurz Sept. 17, 2019, 10:20 a.m. UTC
Ensure that hints are added even if errp is &error_fatal or &error_abort.

Signed-off-by: Greg Kurz <groug@kaod.org>
---
 hw/ppc/mac_newworld.c |    7 +++++--
 hw/ppc/spapr.c        |    7 +++++--
 hw/ppc/spapr_pci.c    |    9 +++++----
 target/ppc/kvm.c      |   13 +++++++++----
 4 files changed, 24 insertions(+), 12 deletions(-)

Comments

David Gibson Sept. 18, 2019, 12:12 a.m. UTC | #1
On Tue, Sep 17, 2019 at 12:20:56PM +0200, Greg Kurz wrote:
> Ensure that hints are added even if errp is &error_fatal or &error_abort.
> 
> Signed-off-by: Greg Kurz <groug@kaod.org>

Acked-by: David Gibson <david@gibson.dropbear.id.au>

> ---
>  hw/ppc/mac_newworld.c |    7 +++++--
>  hw/ppc/spapr.c        |    7 +++++--
>  hw/ppc/spapr_pci.c    |    9 +++++----
>  target/ppc/kvm.c      |   13 +++++++++----
>  4 files changed, 24 insertions(+), 12 deletions(-)
> 
> diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
> index c5bbcc743352..aca8c40bf395 100644
> --- a/hw/ppc/mac_newworld.c
> +++ b/hw/ppc/mac_newworld.c
> @@ -618,8 +618,11 @@ static void core99_set_via_config(Object *obj, const char *value, Error **errp)
>      } else if (!strcmp(value, "pmu-adb")) {
>          cms->via_config = CORE99_VIA_CONFIG_PMU_ADB;
>      } else {
> -        error_setg(errp, "Invalid via value");
> -        error_append_hint(errp, "Valid values are cuda, pmu, pmu-adb.\n");
> +        Error *local_err = NULL;
> +
> +        error_setg(&local_err, "Invalid via value");
> +        error_append_hint(&local_err, "Valid values are cuda, pmu, pmu-adb.\n");
> +        error_propagate(errp, local_err);
>      }
>  }
>  
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index 08a2a5a77092..39d6f57d014e 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -4337,10 +4337,13 @@ void spapr_set_vcpu_id(PowerPCCPU *cpu, int cpu_index, Error **errp)
>      vcpu_id = spapr_vcpu_id(spapr, cpu_index);
>  
>      if (kvm_enabled() && !kvm_vcpu_id_is_valid(vcpu_id)) {
> -        error_setg(errp, "Can't create CPU with id %d in KVM", vcpu_id);
> -        error_append_hint(errp, "Adjust the number of cpus to %d "
> +        Error *local_err = NULL;
> +
> +        error_setg(&local_err, "Can't create CPU with id %d in KVM", vcpu_id);
> +        error_append_hint(&local_err, "Adjust the number of cpus to %d "
>                            "or try to raise the number of threads per core\n",
>                            vcpu_id * ms->smp.threads / spapr->vsmt);
> +        error_propagate(errp, local_err);
>          return;
>      }
>  
> diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
> index 7b71ad7c74f1..4b7e9a1c8666 100644
> --- a/hw/ppc/spapr_pci.c
> +++ b/hw/ppc/spapr_pci.c
> @@ -1870,12 +1870,13 @@ static void spapr_phb_realize(DeviceState *dev, Error **errp)
>      if (spapr_pci_find_phb(spapr, sphb->buid)) {
>          SpaprPhbState *s;
>  
> -        error_setg(errp, "PCI host bridges must have unique indexes");
> -        error_append_hint(errp, "The following indexes are already in use:");
> +        error_setg(&local_err, "PCI host bridges must have unique indexes");
> +        error_append_hint(&local_err, "The following indexes are already in use:");
>          QLIST_FOREACH(s, &spapr->phbs, list) {
> -            error_append_hint(errp, " %d", s->index);
> +            error_append_hint(&local_err, " %d", s->index);
>          }
> -        error_append_hint(errp, "\nTry another value for the index property\n");
> +        error_append_hint(&local_err, "\nTry another value for the index property\n");
> +        error_propagate(errp, local_err);
>          return;
>      }
>  
> diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
> index 8c5b1f25cc95..c6876b08c726 100644
> --- a/target/ppc/kvm.c
> +++ b/target/ppc/kvm.c
> @@ -242,8 +242,11 @@ static void kvm_get_smmu_info(struct kvm_ppc_smmu_info *info, Error **errp)
>      assert(kvm_state != NULL);
>  
>      if (!kvm_check_extension(kvm_state, KVM_CAP_PPC_GET_SMMU_INFO)) {
> -        error_setg(errp, "KVM doesn't expose the MMU features it supports");
> -        error_append_hint(errp, "Consider switching to a newer KVM\n");
> +        Error *local_err = NULL;
> +
> +        error_setg(&local_err, "KVM doesn't expose the MMU features it supports");
> +        error_append_hint(&local_err, "Consider switching to a newer KVM\n");
> +        error_propagate(errp, local_err);
>          return;
>      }
>  
> @@ -2076,6 +2079,7 @@ void kvmppc_hint_smt_possible(Error **errp)
>      int i;
>      GString *g;
>      char *s;
> +    Error *local_err = NULL;
>  
>      assert(kvm_enabled());
>      if (cap_ppc_smt_possible) {
> @@ -2086,12 +2090,13 @@ void kvmppc_hint_smt_possible(Error **errp)
>              }
>          }
>          s = g_string_free(g, false);
> -        error_append_hint(errp, "%s.\n", s);
> +        error_append_hint(&local_err, "%s.\n", s);
>          g_free(s);
>      } else {
> -        error_append_hint(errp,
> +        error_append_hint(&local_err,
>                            "This KVM seems to be too old to support VSMT.\n");
>      }
> +    error_propagate(errp, local_err);
>  }
>  
>  
>
diff mbox series

Patch

diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
index c5bbcc743352..aca8c40bf395 100644
--- a/hw/ppc/mac_newworld.c
+++ b/hw/ppc/mac_newworld.c
@@ -618,8 +618,11 @@  static void core99_set_via_config(Object *obj, const char *value, Error **errp)
     } else if (!strcmp(value, "pmu-adb")) {
         cms->via_config = CORE99_VIA_CONFIG_PMU_ADB;
     } else {
-        error_setg(errp, "Invalid via value");
-        error_append_hint(errp, "Valid values are cuda, pmu, pmu-adb.\n");
+        Error *local_err = NULL;
+
+        error_setg(&local_err, "Invalid via value");
+        error_append_hint(&local_err, "Valid values are cuda, pmu, pmu-adb.\n");
+        error_propagate(errp, local_err);
     }
 }
 
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 08a2a5a77092..39d6f57d014e 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -4337,10 +4337,13 @@  void spapr_set_vcpu_id(PowerPCCPU *cpu, int cpu_index, Error **errp)
     vcpu_id = spapr_vcpu_id(spapr, cpu_index);
 
     if (kvm_enabled() && !kvm_vcpu_id_is_valid(vcpu_id)) {
-        error_setg(errp, "Can't create CPU with id %d in KVM", vcpu_id);
-        error_append_hint(errp, "Adjust the number of cpus to %d "
+        Error *local_err = NULL;
+
+        error_setg(&local_err, "Can't create CPU with id %d in KVM", vcpu_id);
+        error_append_hint(&local_err, "Adjust the number of cpus to %d "
                           "or try to raise the number of threads per core\n",
                           vcpu_id * ms->smp.threads / spapr->vsmt);
+        error_propagate(errp, local_err);
         return;
     }
 
diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
index 7b71ad7c74f1..4b7e9a1c8666 100644
--- a/hw/ppc/spapr_pci.c
+++ b/hw/ppc/spapr_pci.c
@@ -1870,12 +1870,13 @@  static void spapr_phb_realize(DeviceState *dev, Error **errp)
     if (spapr_pci_find_phb(spapr, sphb->buid)) {
         SpaprPhbState *s;
 
-        error_setg(errp, "PCI host bridges must have unique indexes");
-        error_append_hint(errp, "The following indexes are already in use:");
+        error_setg(&local_err, "PCI host bridges must have unique indexes");
+        error_append_hint(&local_err, "The following indexes are already in use:");
         QLIST_FOREACH(s, &spapr->phbs, list) {
-            error_append_hint(errp, " %d", s->index);
+            error_append_hint(&local_err, " %d", s->index);
         }
-        error_append_hint(errp, "\nTry another value for the index property\n");
+        error_append_hint(&local_err, "\nTry another value for the index property\n");
+        error_propagate(errp, local_err);
         return;
     }
 
diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
index 8c5b1f25cc95..c6876b08c726 100644
--- a/target/ppc/kvm.c
+++ b/target/ppc/kvm.c
@@ -242,8 +242,11 @@  static void kvm_get_smmu_info(struct kvm_ppc_smmu_info *info, Error **errp)
     assert(kvm_state != NULL);
 
     if (!kvm_check_extension(kvm_state, KVM_CAP_PPC_GET_SMMU_INFO)) {
-        error_setg(errp, "KVM doesn't expose the MMU features it supports");
-        error_append_hint(errp, "Consider switching to a newer KVM\n");
+        Error *local_err = NULL;
+
+        error_setg(&local_err, "KVM doesn't expose the MMU features it supports");
+        error_append_hint(&local_err, "Consider switching to a newer KVM\n");
+        error_propagate(errp, local_err);
         return;
     }
 
@@ -2076,6 +2079,7 @@  void kvmppc_hint_smt_possible(Error **errp)
     int i;
     GString *g;
     char *s;
+    Error *local_err = NULL;
 
     assert(kvm_enabled());
     if (cap_ppc_smt_possible) {
@@ -2086,12 +2090,13 @@  void kvmppc_hint_smt_possible(Error **errp)
             }
         }
         s = g_string_free(g, false);
-        error_append_hint(errp, "%s.\n", s);
+        error_append_hint(&local_err, "%s.\n", s);
         g_free(s);
     } else {
-        error_append_hint(errp,
+        error_append_hint(&local_err,
                           "This KVM seems to be too old to support VSMT.\n");
     }
+    error_propagate(errp, local_err);
 }