[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 3/7] s390x: fix error propagation in kvm-flic's real
From: |
Christian Borntraeger |
Subject: |
[Qemu-devel] [PATCH 3/7] s390x: fix error propagation in kvm-flic's realize |
Date: |
Tue, 4 Jul 2017 16:07:55 +0200 |
From: Halil Pasic <address@hidden>
>From the moment it was introduced by commit a2875e6f98 ("s390x/kvm:
implement floating-interrupt controller device", 2013-07-16) the kvm-flic
is not making realize fail properly in case it's impossible to create the
KVM device which basically serves as a backend and is absolutely
essential for having an operational kvm-flic.
Let's fix this by making sure we do proper error propagation in realize.
Signed-off-by: Halil Pasic <address@hidden>
Fixes: a2875e6f98 "s390x/kvm: implement floating-interrupt controller device"
Reviewed-by: Dong Jia Shi <address@hidden>
Reviewed-by: Yi Min Zhao <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>
---
hw/intc/s390_flic_kvm.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/hw/intc/s390_flic_kvm.c b/hw/intc/s390_flic_kvm.c
index b4c61d8..bea3997 100644
--- a/hw/intc/s390_flic_kvm.c
+++ b/hw/intc/s390_flic_kvm.c
@@ -15,6 +15,7 @@
#include "cpu.h"
#include <sys/ioctl.h>
#include "qemu/error-report.h"
+#include "qapi/error.h"
#include "hw/sysbus.h"
#include "sysemu/kvm.h"
#include "hw/s390x/s390_flic.h"
@@ -397,18 +398,22 @@ static void kvm_s390_flic_realize(DeviceState *dev, Error
**errp)
struct kvm_create_device cd = {0};
struct kvm_device_attr test_attr = {0};
int ret;
+ Error *errp_local = NULL;
flic_state->fd = -1;
if (!kvm_check_extension(kvm_state, KVM_CAP_DEVICE_CTRL)) {
+ error_setg_errno(&errp_local, errno, "KVM is missing capability"
+ " KVM_CAP_DEVICE_CTRL");
trace_flic_no_device_api(errno);
- return;
+ goto fail;
}
cd.type = KVM_DEV_TYPE_FLIC;
ret = kvm_vm_ioctl(kvm_state, KVM_CREATE_DEVICE, &cd);
if (ret < 0) {
- trace_flic_create_device(errno);
- return;
+ error_setg_errno(&errp_local, errno, "Creating the KVM device failed");
+ trace_flic_no_device_api(errno);
+ goto fail;
}
flic_state->fd = cd.fd;
@@ -417,6 +422,9 @@ static void kvm_s390_flic_realize(DeviceState *dev, Error
**errp)
flic_state->clear_io_supported = !ioctl(flic_state->fd,
KVM_HAS_DEVICE_ATTR, test_attr);
+ return;
+fail:
+ error_propagate(errp, errp_local);
}
static void kvm_s390_flic_reset(DeviceState *dev)
--
2.7.4
- [Qemu-devel] [PATCH 2/7] s390x/3270: fix instruction interception handler, (continued)
- [Qemu-devel] [PATCH 2/7] s390x/3270: fix instruction interception handler, Christian Borntraeger, 2017/07/04
- [Qemu-devel] [PATCH 7/7] virtio-scsi-ccw: use ioeventfd even when KVM is disabled, Christian Borntraeger, 2017/07/04
- [Qemu-devel] [PATCH 4/7] s390x: fix realize inheritance for kvm-flic, Christian Borntraeger, 2017/07/04
- Re: [Qemu-devel] [PATCH 4/7] s390x: fix realize inheritance for kvm-flic, Cornelia Huck, 2017/07/04
- Re: [Qemu-devel] [PATCH 4/7] s390x: fix realize inheritance for kvm-flic, Halil Pasic, 2017/07/04
- Re: [Qemu-devel] [PATCH 4/7] s390x: fix realize inheritance for kvm-flic, Christian Borntraeger, 2017/07/05
- Re: [Qemu-devel] [PATCH 4/7] s390x: fix realize inheritance for kvm-flic, Halil Pasic, 2017/07/05
- Re: [Qemu-devel] [PATCH 4/7] s390x: fix realize inheritance for kvm-flic, Cornelia Huck, 2017/07/05
- Re: [Qemu-devel] [PATCH 4/7] s390x: fix realize inheritance for kvm-flic, Cornelia Huck, 2017/07/05
[Qemu-devel] [PATCH 3/7] s390x: fix error propagation in kvm-flic's realize,
Christian Borntraeger <=
- Re: [Qemu-devel] [PATCH 3/7] s390x: fix error propagation in kvm-flic's realize, Cornelia Huck, 2017/07/04
- Re: [Qemu-devel] [PATCH 3/7] s390x: fix error propagation in kvm-flic's realize, Halil Pasic, 2017/07/04
- Re: [Qemu-devel] [PATCH 3/7] s390x: fix error propagation in kvm-flic's realize, Halil Pasic, 2017/07/04
- Re: [Qemu-devel] [PATCH 3/7] s390x: fix error propagation in kvm-flic's realize, Cornelia Huck, 2017/07/04
- Re: [Qemu-devel] [PATCH 3/7] s390x: fix error propagation in kvm-flic's realize, Christian Borntraeger, 2017/07/04
- [Qemu-devel] [PATCH 1/1] s390x: fixup for "fix error propagation in kvm-flic...", Halil Pasic, 2017/07/05
- Re: [Qemu-devel] [PATCH 1/1] s390x: fixup for "fix error propagation in kvm-flic...", Cornelia Huck, 2017/07/05
- Re: [Qemu-devel] [PATCH 1/1] s390x: fixup for "fix error propagation in kvm-flic...", Christian Borntraeger, 2017/07/05
- Re: [Qemu-devel] [PATCH 1/1] s390x: fixup for "fix error propagation in kvm-flic...", Halil Pasic, 2017/07/05
[Qemu-devel] [PATCH 6/7] s390x: return unavailable features via query-cpu-definitions, Christian Borntraeger, 2017/07/04