[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 04/17] vhost: correctly pass error to caller in vhost
From: |
Michael S. Tsirkin |
Subject: |
[Qemu-devel] [PULL 04/17] vhost: correctly pass error to caller in vhost_dev_enable_notifiers() |
Date: |
Fri, 26 Jun 2015 15:45:51 +0200 |
From: Jason Wang <address@hidden>
We override the error value r in fail_vq, this will cause the caller
can't detect the failure which may cause the caller may disable the
notifiers twice if vhost is failed to start. Fix this by using another
variable to keep track the return value of set_host_notifier().
Fixes b0b3db79559e57db340b292621c397e7a6cdbdc5 ("vhost-net: cleanup
host notifiers at last step")
Cc: address@hidden
Cc: Michael S. Tsirkin <address@hidden>
Signed-off-by: Jason Wang <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
---
hw/virtio/vhost.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index a6dcc79..2712c6f 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -999,7 +999,7 @@ int vhost_dev_enable_notifiers(struct vhost_dev *hdev,
VirtIODevice *vdev)
BusState *qbus = BUS(qdev_get_parent_bus(DEVICE(vdev)));
VirtioBusState *vbus = VIRTIO_BUS(qbus);
VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(vbus);
- int i, r;
+ int i, r, e;
if (!k->set_host_notifier) {
fprintf(stderr, "binding does not support host notifiers\n");
r = -ENOSYS;
@@ -1017,12 +1017,12 @@ int vhost_dev_enable_notifiers(struct vhost_dev *hdev,
VirtIODevice *vdev)
return 0;
fail_vq:
while (--i >= 0) {
- r = k->set_host_notifier(qbus->parent, hdev->vq_index + i, false);
- if (r < 0) {
+ e = k->set_host_notifier(qbus->parent, hdev->vq_index + i, false);
+ if (e < 0) {
fprintf(stderr, "vhost VQ %d notifier cleanup error: %d\n", i, -r);
fflush(stderr);
}
- assert (r >= 0);
+ assert (e >= 0);
}
fail:
return r;
--
MST
- [Qemu-devel] [PULL 00/17] virtio, pci fixes, enhancements, Michael S. Tsirkin, 2015/06/26
- [Qemu-devel] [PULL 01/17] virito-pci: fix OVERRUN problem, Michael S. Tsirkin, 2015/06/26
- [Qemu-devel] [PULL 02/17] qdev: fix OVERFLOW_BEFORE_WIDEN, Michael S. Tsirkin, 2015/06/26
- [Qemu-devel] [PULL 03/17] balloon: add a feature bit to let Guest OS deflate balloon on oom, Michael S. Tsirkin, 2015/06/26
- [Qemu-devel] [PULL 04/17] vhost: correctly pass error to caller in vhost_dev_enable_notifiers(),
Michael S. Tsirkin <=
- [Qemu-devel] [PULL 05/17] MAINTAINERS: add ACPI entry, Michael S. Tsirkin, 2015/06/26
- [Qemu-devel] [PULL 06/17] pc: cleanup and convert TMP ACPI device description to AML API, Michael S. Tsirkin, 2015/06/26
- [Qemu-devel] [PULL 07/17] add pci-bridge-seat, Michael S. Tsirkin, 2015/06/26
- [Qemu-devel] [PULL 08/17] migration: introduce VMSTATE_BUFFER_UNSAFE_INFO_TEST(), Michael S. Tsirkin, 2015/06/26
- [Qemu-devel] [PULL 09/17] hw/pci-bridge: expose _test parameter in SHPC_VMSTATE(), Michael S. Tsirkin, 2015/06/26
- [Qemu-devel] [PULL 10/17] hw/pci-bridge: add macro for "chassis_nr" property, Michael S. Tsirkin, 2015/06/26
- [Qemu-devel] [PULL 11/17] hw/pci-bridge: add macro for "msi" property, Michael S. Tsirkin, 2015/06/26
- [Qemu-devel] [PULL 12/17] hw/pci: introduce shpc_present() helper function, Michael S. Tsirkin, 2015/06/26
- [Qemu-devel] [PULL 13/17] hw/pci-bridge: introduce "shpc" property, Michael S. Tsirkin, 2015/06/26
- [Qemu-devel] [PULL 15/17] hw/core: explicit OFW unit address callback for SysBusDeviceClass, Michael S. Tsirkin, 2015/06/26