qemu-s390x
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 2/5] hw/s390x/pv: Un-inline s390_pv_init()


From: Richard Henderson
Subject: Re: [PATCH v2 2/5] hw/s390x/pv: Un-inline s390_pv_init()
Date: Sat, 17 Dec 2022 09:37:34 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2

On 12/17/22 07:24, Philippe Mathieu-Daudé wrote:
@@ -251,7 +251,9 @@ struct S390PVGuestClass {
int s390_pv_kvm_init(ConfidentialGuestSupport *cgs, Error **errp)
  {
-    if (!object_dynamic_cast(OBJECT(cgs), TYPE_S390_PV_GUEST)) {
+    assert(kvm_enabled());
+
+    if (!cgs || !object_dynamic_cast(OBJECT(cgs), TYPE_S390_PV_GUEST)) {
          return 0;
      }
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 2e64ffab45..d9a96e315e 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -255,8 +255,10 @@ static void ccw_init(MachineState *machine)
      /* init CPUs (incl. CPU model) early so s390_has_feature() works */
      s390_init_cpus(machine);
- /* Need CPU model to be determined before we can set up PV */
-    s390_pv_init(machine->cgs, &error_fatal);
+    if (kvm_enabled()) {
+        /* Need CPU model to be determined before we can set up PV */
+        s390_pv_kvm_init(machine->cgs, &error_fatal);
+    }
s390_flic_init();...
-static inline int s390_pv_init(ConfidentialGuestSupport *cgs, Error **errp)
-{
-    if (!cgs) {
-        return 0;
-    }
-    if (kvm_enabled()) {
-        return s390_pv_kvm_init(cgs, errp);
-    }
-
-    error_setg(errp, "Protected Virtualization requires KVM");
-    return -1;
-}

You've lost the error path above. And it seems like we could just handle null cgs early. E.g.

    if (machine->cgs) {
        if (kvm_enabled()) {
            s390_pv_kvm_init(machine->cgs, &error_fatal);
        } else {
            error_report(...);
            exit(EXIT_FAILURE);
        }
    }

(since qabi/error.h says not to use error_setg(&error_fatal, ...)).


r~




reply via email to

[Prev in Thread] Current Thread [Next in Thread]