All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: peter.maydell@linaro.org, groug@kaod.org
Cc: qemu-ppc@nongnu.org, qemu-devel@nongnu.org,
	David Gibson <david@gibson.dropbear.id.au>
Subject: [PULL 30/40] spapr/xive: Rework error handling of kvmppc_xive_[gs]et_queue_config()
Date: Tue, 18 Aug 2020 14:19:12 +1000	[thread overview]
Message-ID: <20200818041922.251708-31-david@gibson.dropbear.id.au> (raw)
In-Reply-To: <20200818041922.251708-1-david@gibson.dropbear.id.au>

From: Greg Kurz <groug@kaod.org>

Since kvm_device_access() returns a negative errno on failure, convert
kvmppc_xive_get_queue_config() and kvmppc_xive_set_queue_config() to
use it for error checking. This allows to get rid of the local_err
boilerplate.

Propagate the return value so that callers may use it as well to check
failures.

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <159707847357.1489912.2032291280645236480.stgit@bahia.lan>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/intc/spapr_xive_kvm.c    | 35 ++++++++++++++++-------------------
 include/hw/ppc/spapr_xive.h |  4 ++--
 2 files changed, 18 insertions(+), 21 deletions(-)

diff --git a/hw/intc/spapr_xive_kvm.c b/hw/intc/spapr_xive_kvm.c
index 5e088ccbf8..696623f717 100644
--- a/hw/intc/spapr_xive_kvm.c
+++ b/hw/intc/spapr_xive_kvm.c
@@ -374,15 +374,15 @@ void kvmppc_xive_source_set_irq(void *opaque, int srcno, int val)
 /*
  * sPAPR XIVE interrupt controller (KVM)
  */
-void kvmppc_xive_get_queue_config(SpaprXive *xive, uint8_t end_blk,
-                                  uint32_t end_idx, XiveEND *end,
-                                  Error **errp)
+int kvmppc_xive_get_queue_config(SpaprXive *xive, uint8_t end_blk,
+                                 uint32_t end_idx, XiveEND *end,
+                                 Error **errp)
 {
     struct kvm_ppc_xive_eq kvm_eq = { 0 };
     uint64_t kvm_eq_idx;
     uint8_t priority;
     uint32_t server;
-    Error *local_err = NULL;
+    int ret;
 
     assert(xive_end_is_valid(end));
 
@@ -394,11 +394,10 @@ void kvmppc_xive_get_queue_config(SpaprXive *xive, uint8_t end_blk,
     kvm_eq_idx |= server << KVM_XIVE_EQ_SERVER_SHIFT &
         KVM_XIVE_EQ_SERVER_MASK;
 
-    kvm_device_access(xive->fd, KVM_DEV_XIVE_GRP_EQ_CONFIG, kvm_eq_idx,
-                      &kvm_eq, false, &local_err);
-    if (local_err) {
-        error_propagate(errp, local_err);
-        return;
+    ret = kvm_device_access(xive->fd, KVM_DEV_XIVE_GRP_EQ_CONFIG, kvm_eq_idx,
+                            &kvm_eq, false, errp);
+    if (ret < 0) {
+        return ret;
     }
 
     /*
@@ -408,17 +407,18 @@ void kvmppc_xive_get_queue_config(SpaprXive *xive, uint8_t end_blk,
      */
     end->w1 = xive_set_field32(END_W1_GENERATION, 0ul, kvm_eq.qtoggle) |
         xive_set_field32(END_W1_PAGE_OFF, 0ul, kvm_eq.qindex);
+
+    return 0;
 }
 
-void kvmppc_xive_set_queue_config(SpaprXive *xive, uint8_t end_blk,
-                                  uint32_t end_idx, XiveEND *end,
-                                  Error **errp)
+int kvmppc_xive_set_queue_config(SpaprXive *xive, uint8_t end_blk,
+                                 uint32_t end_idx, XiveEND *end,
+                                 Error **errp)
 {
     struct kvm_ppc_xive_eq kvm_eq = { 0 };
     uint64_t kvm_eq_idx;
     uint8_t priority;
     uint32_t server;
-    Error *local_err = NULL;
 
     /*
      * Build the KVM state from the local END structure.
@@ -456,12 +456,9 @@ void kvmppc_xive_set_queue_config(SpaprXive *xive, uint8_t end_blk,
     kvm_eq_idx |= server << KVM_XIVE_EQ_SERVER_SHIFT &
         KVM_XIVE_EQ_SERVER_MASK;
 
-    kvm_device_access(xive->fd, KVM_DEV_XIVE_GRP_EQ_CONFIG, kvm_eq_idx,
-                      &kvm_eq, true, &local_err);
-    if (local_err) {
-        error_propagate(errp, local_err);
-        return;
-    }
+    return
+        kvm_device_access(xive->fd, KVM_DEV_XIVE_GRP_EQ_CONFIG, kvm_eq_idx,
+                          &kvm_eq, true, errp);
 }
 
 void kvmppc_xive_reset(SpaprXive *xive, Error **errp)
diff --git a/include/hw/ppc/spapr_xive.h b/include/hw/ppc/spapr_xive.h
index 93d09d68de..d0a08b618f 100644
--- a/include/hw/ppc/spapr_xive.h
+++ b/include/hw/ppc/spapr_xive.h
@@ -85,10 +85,10 @@ void kvmppc_xive_set_source_config(SpaprXive *xive, uint32_t lisn, XiveEAS *eas,
 void kvmppc_xive_sync_source(SpaprXive *xive, uint32_t lisn, Error **errp);
 uint64_t kvmppc_xive_esb_rw(XiveSource *xsrc, int srcno, uint32_t offset,
                             uint64_t data, bool write);
-void kvmppc_xive_set_queue_config(SpaprXive *xive, uint8_t end_blk,
+int kvmppc_xive_set_queue_config(SpaprXive *xive, uint8_t end_blk,
                                  uint32_t end_idx, XiveEND *end,
                                  Error **errp);
-void kvmppc_xive_get_queue_config(SpaprXive *xive, uint8_t end_blk,
+int kvmppc_xive_get_queue_config(SpaprXive *xive, uint8_t end_blk,
                                  uint32_t end_idx, XiveEND *end,
                                  Error **errp);
 void kvmppc_xive_synchronize_state(SpaprXive *xive, Error **errp);
-- 
2.26.2



  parent reply	other threads:[~2020-08-18  4:36 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-18  4:18 [PULL 00/40] ppc-for-5.2 queue 20200818 David Gibson
2020-08-18  4:18 ` [PULL 01/40] target/ppc: Fix TCG leak with the evmwsmiaa instruction David Gibson
2020-08-18  4:18 ` [PULL 02/40] target/ppc: Introduce Power ISA 3.1 flag David Gibson
2020-08-18  4:18 ` [PULL 03/40] target/ppc: Enable Power ISA 3.1 David Gibson
2020-08-18  4:18 ` [PULL 04/40] target/ppc: add byte-reverse br[dwh] instructions David Gibson
2020-08-18  4:18 ` [PULL 05/40] target/ppc: convert vmuluwm to tcg_gen_gvec_mul David Gibson
2020-08-18  4:18 ` [PULL 06/40] target/ppc: add vmulld instruction David Gibson
2020-08-18  4:18 ` [PULL 07/40] ppc/spapr: Fix 32 bit logical memory block size assumptions David Gibson
2020-08-18  4:18 ` [PULL 08/40] spapr: Use error_append_hint() in spapr_caps.c David Gibson
2020-08-18  4:18 ` [PULL 09/40] spapr: Forbid nested KVM-HV in pre-power9 compat mode David Gibson
2020-08-18  4:18 ` [PULL 10/40] ppc/xive: Fix some typos in comments David Gibson
2020-08-18  4:18 ` [PULL 11/40] Update PowerPC AT_HWCAP2 definition David Gibson
2020-08-18  4:18 ` [PULL 12/40] target/ppc: add vmulld to INDEX_op_mul_vec case David Gibson
2020-08-18  4:18 ` [PULL 13/40] target/ppc: add vmulh{su}w instructions David Gibson
2020-08-18  4:18 ` [PULL 14/40] target/ppc: add vmulh{su}d instructions David Gibson
2020-08-18  4:18 ` [PULL 15/40] target/ppc: Fix SPE unavailable exception triggering David Gibson
2020-08-18  4:18 ` [PULL 16/40] docs: adding NUMA documentation for pseries David Gibson
2020-08-18  4:18 ` [PULL 17/40] docs: Update POWER9 XIVE support for nested guests David Gibson
2020-08-18  4:19 ` [PULL 18/40] spapr: Clarify error and documentation for broken KVM XICS David Gibson
2020-08-18  4:19 ` [PULL 19/40] spapr/xive: Fix xive->fd if kvm_create_device() fails David Gibson
2020-08-18  4:19 ` [PULL 20/40] spapr/xive: Simplify kvmppc_xive_disconnect() David Gibson
2020-08-18  4:19 ` [PULL 21/40] target/ppc: Integrate icount to purr, vtb, and tbu40 David Gibson
2020-08-18  4:19 ` [PULL 22/40] ppc/xive: Rework setup of XiveSource::esb_mmio David Gibson
2020-08-18  4:19 ` [PULL 23/40] ppc/xive: Introduce dedicated kvm_irqchip_in_kernel() wrappers David Gibson
2020-08-18  4:19 ` [PULL 24/40] spapr/xive: Convert KVM device fd checks to assert() David Gibson
2020-08-18  4:19 ` [PULL 25/40] spapr: Simplify error handling in spapr_phb_realize() David Gibson
2020-08-18  4:19 ` [PULL 26/40] spapr/xive: Rework error handling of kvmppc_xive_cpu_connect() David Gibson
2020-08-18  4:19 ` [PULL 27/40] spapr/xive: Rework error handling of kvmppc_xive_source_reset() David Gibson
2020-08-18  4:19 ` [PULL 28/40] spapr/xive: Rework error handling of kvmppc_xive_mmap() David Gibson
2020-08-18  4:19 ` [PULL 29/40] spapr/xive: Rework error handling of kvmppc_xive_cpu_[gs]et_state() David Gibson
2020-08-18  4:19 ` David Gibson [this message]
2020-08-18  4:19 ` [PULL 31/40] spapr/xive: Rework error handling in kvmppc_xive_get_queues() David Gibson
2020-08-18  4:19 ` [PULL 32/40] spapr/xive: Rework error handling of kvmppc_xive_set_source_config() David Gibson
2020-08-18  4:19 ` [PULL 33/40] spapr/kvm: Fix error handling in kvmppc_xive_pre_save() David Gibson
2020-08-18  4:19 ` [PULL 34/40] spapr/xive: Fix error handling in kvmppc_xive_post_load() David Gibson
2020-08-18  4:19 ` [PULL 35/40] ppc/xive: Fix error handling in vmstate_xive_tctx_*() callbacks David Gibson
2020-08-18  4:19 ` [PULL 36/40] spapr/xive: Simplify error handling in kvmppc_xive_connect() David Gibson
2020-08-18  4:19 ` [PULL 37/40] ppc/xive: Simplify error handling in xive_tctx_realize() David Gibson
2020-08-18  4:19 ` [PULL 38/40] spapr/xive: Simplify error handling of kvmppc_xive_cpu_synchronize_state() David Gibson
2020-08-18  4:19 ` [PULL 39/40] nvram: Exit QEMU if NVRAM cannot contain all -prom-env data David Gibson
2020-08-18  4:19 ` [PULL 40/40] spapr/xive: Use xive_source_esb_len() David Gibson
2020-08-23 13:54 ` [PULL 00/40] ppc-for-5.2 queue 20200818 Peter Maydell
2020-08-23 23:21   ` David Gibson
2020-08-24  8:36     ` Peter Maydell
2020-08-24 11:12 ` Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200818041922.251708-31-david@gibson.dropbear.id.au \
    --to=david@gibson.dropbear.id.au \
    --cc=groug@kaod.org \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.