diff mbox series

[09/14] spapr/kvm: Fix error handling in kvmppc_xive_pre_save()

Message ID 159707849455.1489912.6034461176847728064.stgit@bahia.lan (mailing list archive)
State New, archived
Headers show
Series ppc/spapr: Error handling fixes and cleanups | expand

Commit Message

Greg Kurz Aug. 10, 2020, 4:54 p.m. UTC
Now that kvmppc_xive_get_queues() returns a negative errno on failure, check
with that because it is preferred to local_err. And most of all, propagate
it because vmstate expects negative errnos.

Signed-off-by: Greg Kurz <groug@kaod.org>
---
 hw/intc/spapr_xive_kvm.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

David Gibson Aug. 13, 2020, 10:28 a.m. UTC | #1
On Mon, Aug 10, 2020 at 06:54:54PM +0200, Greg Kurz wrote:
> Now that kvmppc_xive_get_queues() returns a negative errno on failure, check
> with that because it is preferred to local_err. And most of all, propagate
> it because vmstate expects negative errnos.
> 
> Signed-off-by: Greg Kurz <groug@kaod.org>

Fixed a conflict and applied to ppc-for-5.2.

> ---
>  hw/intc/spapr_xive_kvm.c |    7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/hw/intc/spapr_xive_kvm.c b/hw/intc/spapr_xive_kvm.c
> index f2dda692183b..1686b036eb2d 100644
> --- a/hw/intc/spapr_xive_kvm.c
> +++ b/hw/intc/spapr_xive_kvm.c
> @@ -604,16 +604,17 @@ void kvmppc_xive_synchronize_state(SpaprXive *xive, Error **errp)
>  int kvmppc_xive_pre_save(SpaprXive *xive)
>  {
>      Error *local_err = NULL;
> +    int ret;
>  
>      assert(xive->fd != -1);
>  
>      /* EAT: there is no extra state to query from KVM */
>  
>      /* ENDT */
> -    kvmppc_xive_get_queues(xive, &local_err);
> -    if (local_err) {
> +    ret = kvmppc_xive_get_queues(xive, &local_err);
> +    if (ret < 0) {
>          error_report_err(local_err);
> -        return -1;
> +        return ret;
>      }
>  
>      return 0;
> 
>
diff mbox series

Patch

diff --git a/hw/intc/spapr_xive_kvm.c b/hw/intc/spapr_xive_kvm.c
index f2dda692183b..1686b036eb2d 100644
--- a/hw/intc/spapr_xive_kvm.c
+++ b/hw/intc/spapr_xive_kvm.c
@@ -604,16 +604,17 @@  void kvmppc_xive_synchronize_state(SpaprXive *xive, Error **errp)
 int kvmppc_xive_pre_save(SpaprXive *xive)
 {
     Error *local_err = NULL;
+    int ret;
 
     assert(xive->fd != -1);
 
     /* EAT: there is no extra state to query from KVM */
 
     /* ENDT */
-    kvmppc_xive_get_queues(xive, &local_err);
-    if (local_err) {
+    ret = kvmppc_xive_get_queues(xive, &local_err);
+    if (ret < 0) {
         error_report_err(local_err);
-        return -1;
+        return ret;
     }
 
     return 0;