All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Auger <eric.auger@redhat.com>
To: eric.auger.pro@gmail.com, eric.auger@redhat.com,
	qemu-devel@nongnu.org, qemu-arm@nongnu.org,
	peter.maydell@linaro.org, shaju.abraham@nutanix.com,
	khushit.shah@nutanix.com, richard.henderson@linaro.org,
	pbonzini@redhat.com, skolothumtho@nvidia.com,
	philmd@oss.qualcomm.com, 7746591750@163.com, maobibo@loongson.cn,
	harshpb@linux.ibm.com, amachhiw@linux.ibm.com,
	daniel.barboza@oss.qualcomm.com, milesg@linux.ibm.com,
	farman@linux.ibm.com, cohuck@redhat.com
Cc: armbru@redhat.com, mbawa@redhat.com
Subject: [PATCH for-11.2 6/9] target/arm/kvm: Pass an error handle to kvm_arm_init_cpreg_list
Date: Thu, 29 Oct 2026 10:20:18 +0100	[thread overview]
Message-ID: <20261029092307.281287-7-eric.auger@redhat.com> (raw)
In-Reply-To: <20261029092307.281287-1-eric.auger@redhat.com>

Pass an error handle to kvm_arm_init_cpreg_list(). A Subsequent patch
will do the same with kvm_arch_init_vcpu().

Signed-off-by: Eric Auger <eric.auger@redhat.com>
---
 target/arm/kvm.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/target/arm/kvm.c b/target/arm/kvm.c
index 28f199c03f..d454346037 100644
--- a/target/arm/kvm.c
+++ b/target/arm/kvm.c
@@ -872,6 +872,7 @@ static bool kvm_arm_reg_syncs_via_cpreg_list(uint64_t regidx)
 /**
  * kvm_arm_init_cpreg_list:
  * @cpu: ARMCPU
+ * @errp: Error handle
  *
  * Initialize the ARMCPU cpreg list according to the kernel's
  * definition of what CPU registers it knows about (and throw away
@@ -879,7 +880,7 @@ static bool kvm_arm_reg_syncs_via_cpreg_list(uint64_t regidx)
  *
  * Returns: 0 if success, else < 0 error code
  */
-static int kvm_arm_init_cpreg_list(ARMCPU *cpu)
+static int kvm_arm_init_cpreg_list(ARMCPU *cpu, Error **errp)
 {
     struct kvm_reg_list rl;
     struct kvm_reg_list *rlp;
@@ -889,12 +890,17 @@ static int kvm_arm_init_cpreg_list(ARMCPU *cpu)
     rl.n = 0;
     ret = kvm_vcpu_ioctl(cs, KVM_GET_REG_LIST, &rl);
     if (ret != -E2BIG) {
+        if (ret < 0) {
+            error_setg_errno(errp, -ret,
+                             "failed to get KVM register list size");
+        }
         return ret;
     }
     rlp = g_malloc(sizeof(struct kvm_reg_list) + rl.n * sizeof(uint64_t));
     rlp->n = rl.n;
     ret = kvm_vcpu_ioctl(cs, KVM_GET_REG_LIST, rlp);
     if (ret) {
+        error_setg_errno(errp, -ret, "failed to get KVM register list");
         goto out;
     }
     /* Sort the list we get back from the kernel, since cpreg_tuples
@@ -911,7 +917,7 @@ static int kvm_arm_init_cpreg_list(ARMCPU *cpu)
         case KVM_REG_SIZE_U64:
             break;
         default:
-            fprintf(stderr, "Can't handle size of register in kernel list\n");
+            error_setg(errp, "Can't handle size of register in kernel list");
             ret = -EINVAL;
             goto out;
         }
@@ -937,7 +943,7 @@ static int kvm_arm_init_cpreg_list(ARMCPU *cpu)
         /* Shouldn't happen unless kernel is inconsistent about
          * what registers exist.
          */
-        fprintf(stderr, "Initial read of kernel register state failed\n");
+        error_setg(errp, "Initial read of kernel register state failed");
         ret = -EINVAL;
         goto out;
     }
@@ -2015,6 +2021,7 @@ int kvm_arch_init_vcpu(CPUState *cs)
     uint64_t mpidr;
     ARMCPU *cpu = ARM_CPU(cs);
     CPUARMState *env = &cpu->env;
+    Error *local_err = NULL;
     uint64_t psciver;
 
     if (cpu->kvm_target == QEMU_KVM_ARM_TARGET_NONE) {
@@ -2113,7 +2120,11 @@ int kvm_arch_init_vcpu(CPUState *cs)
     SET_IDREG(&cpu->isar, MPIDR, mpidr);
     cpu->mp_affinity = mpidr & ARM64_AFFINITY_MASK;
 
-    return kvm_arm_init_cpreg_list(cpu);
+    ret = kvm_arm_init_cpreg_list(cpu, &local_err);
+    if (ret < 0) {
+        error_report_err(local_err);
+    }
+    return ret;
 }
 
 int kvm_arch_destroy_vcpu(CPUState *cs)
-- 
2.53.0



  parent reply	other threads:[~2026-10-29  9:24 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-29  9:20 [PATCH for-11.2 0/9] kvm/arm: Some refactoring for custom KVM host model Eric Auger
2026-10-29  9:20 ` [PATCH for-11.2 1/9] target/arm/cpu-sysregs.h.inc: Sort by name alphabetical order Eric Auger
2026-10-29  9:20 ` [PATCH for-11.2 2/9] target/arm: Move REVIDR into isar.idregs[] storage Eric Auger
2026-10-29  9:55   ` Sebastian Ott
2026-10-29 12:10   ` Khushit Shah
2026-10-29  9:20 ` [PATCH for-11.2 3/9] target/arm: Move MIDR " Eric Auger
2026-10-29 10:02   ` Sebastian Ott
2026-10-29 12:12   ` Khushit Shah
2026-10-29  9:20 ` [PATCH for-11.2 4/9] target/arm: Enforce MPIDR " Eric Auger
2026-10-29 10:34   ` Sebastian Ott
2026-10-29 12:15   ` Khushit Shah
2026-10-29  9:20 ` [PATCH for-11.2 5/9] target/arm/kvm: Pass an error handle to kvm_arm_create_scratch_host_vcpu Eric Auger
2026-10-29  9:38   ` Gustavo Romero
2026-10-29 10:38   ` Sebastian Ott
2026-10-29 14:37   ` Peter Maydell
2026-10-29 14:54     ` Eric Auger
2026-10-29 15:05       ` Peter Maydell
2026-10-29  9:20 ` Eric Auger [this message]
2026-10-29  9:39   ` [PATCH for-11.2 6/9] target/arm/kvm: Pass an error handle to kvm_arm_init_cpreg_list Gustavo Romero
2026-10-29 10:46   ` Sebastian Ott
2026-10-29 14:49   ` Peter Maydell
2026-10-29  9:20 ` [PATCH for-11.2 7/9] target/kvm: Pass an Error handle to kvm_arch_init_vcpu Eric Auger
2026-10-29  9:39   ` Gustavo Romero
2026-10-29 10:07   ` Cornelia Huck
2026-10-29 11:00   ` Sebastian Ott
2026-10-29 12:10     ` Mohammadfaiz Bawa
2026-10-29  9:20 ` [PATCH for-11.2 8/9] target/arm/kvm: Introduce kvm_arm_vcpu_prepare_init_features helper Eric Auger
2026-10-29  9:40   ` Gustavo Romero
2026-10-29 11:09   ` Sebastian Ott
2026-10-29  9:20 ` [PATCH for-11.2 9/9] hw/arm/virt: Make sure virt_get_caches() keeps on reading CLIDR_EL1 as 0 Eric Auger
2026-10-29 10:02   ` Gustavo Romero

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=20261029092307.281287-7-eric.auger@redhat.com \
    --to=eric.auger@redhat.com \
    --cc=7746591750@163.com \
    --cc=amachhiw@linux.ibm.com \
    --cc=armbru@redhat.com \
    --cc=cohuck@redhat.com \
    --cc=daniel.barboza@oss.qualcomm.com \
    --cc=eric.auger.pro@gmail.com \
    --cc=farman@linux.ibm.com \
    --cc=harshpb@linux.ibm.com \
    --cc=khushit.shah@nutanix.com \
    --cc=maobibo@loongson.cn \
    --cc=mbawa@redhat.com \
    --cc=milesg@linux.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@oss.qualcomm.com \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=shaju.abraham@nutanix.com \
    --cc=skolothumtho@nvidia.com \
    /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.