qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: stefanha@redhat.com, "Bibo Mao" <maobibo@loongson.cn>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: [PULL 5/8] target/loongarch: Fix error handling of KVM feature checks
Date: Fri, 21 Mar 2025 15:51:55 +0100	[thread overview]
Message-ID: <20250321145158.3896812-6-armbru@redhat.com> (raw)
In-Reply-To: <20250321145158.3896812-1-armbru@redhat.com>

From: Bibo Mao <maobibo@loongson.cn>

For some paravirt KVM features, if user forces to enable it however
KVM does not support, qemu should fail to run and exit immediately,
rather than continue to run. Here set error message and return directly
in function kvm_arch_init_vcpu().

Fixes: 6edd2a9bec90 (target/loongarch/kvm: Implement LoongArch PMU extension)
Fixes: 936c3f4d7916 (target/loongarch: Use auto method with LSX feature)
Fixes: 5e360dabedb1 (target/loongarch: Use auto method with LASX feature)
Fixes: 620d9bd0022e (target/loongarch: Add paravirt ipi feature detection)
Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20250320032158.1762751-2-maobibo@loongson.cn>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 target/loongarch/kvm/kvm.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/target/loongarch/kvm/kvm.c b/target/loongarch/kvm/kvm.c
index 28735c80be..7f63e7c8fe 100644
--- a/target/loongarch/kvm/kvm.c
+++ b/target/loongarch/kvm/kvm.c
@@ -1081,7 +1081,6 @@ int kvm_arch_init_vcpu(CPUState *cs)
     int ret;
     Error *local_err = NULL;
 
-    ret = 0;
     qemu_add_vm_change_state_handler(kvm_loongarch_vm_stage_change, cs);
 
     if (!kvm_get_one_reg(cs, KVM_REG_LOONGARCH_DEBUG_INST, &val)) {
@@ -1091,29 +1090,34 @@ int kvm_arch_init_vcpu(CPUState *cs)
     ret = kvm_cpu_check_lsx(cs, &local_err);
     if (ret < 0) {
         error_report_err(local_err);
+        return ret;
     }
 
     ret = kvm_cpu_check_lasx(cs, &local_err);
     if (ret < 0) {
         error_report_err(local_err);
+        return ret;
     }
 
     ret = kvm_cpu_check_lbt(cs, &local_err);
     if (ret < 0) {
         error_report_err(local_err);
+        return ret;
     }
 
     ret = kvm_cpu_check_pmu(cs, &local_err);
     if (ret < 0) {
         error_report_err(local_err);
+        return ret;
     }
 
     ret = kvm_cpu_check_pv_features(cs, &local_err);
     if (ret < 0) {
         error_report_err(local_err);
+        return ret;
     }
 
-    return ret;
+    return 0;
 }
 
 static bool loongarch_get_lbt(Object *obj, Error **errp)
-- 
2.48.1



  parent reply	other threads:[~2025-03-21 14:53 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-21 14:51 [PULL 0/8] Error reporting patches for 2025-03-21 Markus Armbruster
2025-03-21 14:51 ` [PULL 1/8] cryptodev: Fix error handling in cryptodev_lkcf_execute_task() Markus Armbruster
2025-03-21 14:51 ` [PULL 2/8] error: Strip trailing '\n' from an error string argument Markus Armbruster
2025-03-21 14:51 ` [PULL 3/8] hw/xen: Fix xen_bus_realize() error handling Markus Armbruster
2025-03-21 14:51 ` [PULL 4/8] hw/xen: Downgrade a xen_bus_realize() non-error to warning Markus Armbruster
2025-03-21 14:51 ` Markus Armbruster [this message]
2025-03-21 14:51 ` [PULL 6/8] hw/loongarch/virt: Eliminate error_propagate() Markus Armbruster
2025-03-21 14:51 ` [PULL 7/8] target/loongarch: Remove unnecessary temporary variable assignment Markus Armbruster
2025-03-21 14:51 ` [PULL 8/8] target/loongarch: Clean up virt_cpu_irq_init() error handling Markus Armbruster
2025-03-23 22:29 ` [PULL 0/8] Error reporting patches for 2025-03-21 Stefan Hajnoczi

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=20250321145158.3896812-6-armbru@redhat.com \
    --to=armbru@redhat.com \
    --cc=maobibo@loongson.cn \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).