[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 15/36] virtio-scsi: don't uninitialize queues that we didn't initi
From: |
Paolo Bonzini |
Subject: |
[PULL 15/36] virtio-scsi: don't uninitialize queues that we didn't initialize |
Date: |
Fri, 29 Jan 2021 12:17:53 +0100 |
From: Maxim Levitsky <mlevitsk@redhat.com>
Count number of queues that we initialized and only deinitialize these that we
initialized successfully.
Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20201217150040.906961-3-mlevitsk@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/scsi/virtio-scsi-dataplane.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/hw/scsi/virtio-scsi-dataplane.c b/hw/scsi/virtio-scsi-dataplane.c
index b995bab3a2..2c83a0ab1f 100644
--- a/hw/scsi/virtio-scsi-dataplane.c
+++ b/hw/scsi/virtio-scsi-dataplane.c
@@ -126,6 +126,7 @@ int virtio_scsi_dataplane_start(VirtIODevice *vdev)
{
int i;
int rc;
+ int vq_init_count = 0;
BusState *qbus = qdev_get_parent_bus(DEVICE(vdev));
VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(qbus);
VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
@@ -153,17 +154,22 @@ int virtio_scsi_dataplane_start(VirtIODevice *vdev)
if (rc) {
goto fail_vrings;
}
+
+ vq_init_count++;
rc = virtio_scsi_vring_init(s, vs->event_vq, 1,
virtio_scsi_data_plane_handle_event);
if (rc) {
goto fail_vrings;
}
+
+ vq_init_count++;
for (i = 0; i < vs->conf.num_queues; i++) {
rc = virtio_scsi_vring_init(s, vs->cmd_vqs[i], i + 2,
virtio_scsi_data_plane_handle_cmd);
if (rc) {
goto fail_vrings;
}
+ vq_init_count++;
}
s->dataplane_starting = false;
@@ -174,7 +180,7 @@ int virtio_scsi_dataplane_start(VirtIODevice *vdev)
fail_vrings:
aio_wait_bh_oneshot(s->ctx, virtio_scsi_dataplane_stop_bh, s);
aio_context_release(s->ctx);
- for (i = 0; i < vs->conf.num_queues + 2; i++) {
+ for (i = 0; i < vq_init_count; i++) {
virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), i, false);
virtio_bus_cleanup_host_notifier(VIRTIO_BUS(qbus), i);
}
--
2.29.2
- [PULL 06/36] docs/fuzz: add some information about OSS-Fuzz, (continued)
- [PULL 06/36] docs/fuzz: add some information about OSS-Fuzz, Paolo Bonzini, 2021/01/29
- [PULL 07/36] fuzz: add virtio-9p configurations for fuzzing, Paolo Bonzini, 2021/01/29
- [PULL 10/36] meson: accept either shared or static libraries if --disable-static, Paolo Bonzini, 2021/01/29
- [PULL 12/36] x86/cpu: Populate SVM CPUID feature bits, Paolo Bonzini, 2021/01/29
- [PULL 16/36] event_notifier: handle initialization failure better, Paolo Bonzini, 2021/01/29
- [PULL 14/36] docs: don't install corresponding man page if guest agent is disabled, Paolo Bonzini, 2021/01/29
- [PULL 11/36] meson: honor --enable-rbd if cc.links test fails, Paolo Bonzini, 2021/01/29
- [PULL 17/36] target/i386: Fix decoding of certain BMI instructions, Paolo Bonzini, 2021/01/29
- [PULL 13/36] fuzz: fix wrong index in clear_bits, Paolo Bonzini, 2021/01/29
- [PULL 18/36] target/i86: implement PKS, Paolo Bonzini, 2021/01/29
- [PULL 15/36] virtio-scsi: don't uninitialize queues that we didn't initialize,
Paolo Bonzini <=
- [PULL 22/36] meson: Warn when TCI is selected but TCG backend is available, Paolo Bonzini, 2021/01/29
- [PULL 19/36] configure: Fix --enable-tcg-interpreter, Paolo Bonzini, 2021/01/29
- [PULL 20/36] configure: Improve TCI feature description, Paolo Bonzini, 2021/01/29
- [PULL 21/36] meson: Explicit TCG backend used, Paolo Bonzini, 2021/01/29
- [PULL 26/36] pc-bios/meson: Only install EDK2 blob firmwares with system emulation, Paolo Bonzini, 2021/01/29
- [PULL 24/36] build-sys: make libslirp a meson subproject, Paolo Bonzini, 2021/01/29
- [PULL 25/36] tests/meson: Only build softfloat objects if TCG is selected, Paolo Bonzini, 2021/01/29
- [PULL 28/36] meson: Merge trace_events_subdirs array, Paolo Bonzini, 2021/01/29
- [PULL 31/36] qapi/meson: Restrict qdev code to system-mode emulation, Paolo Bonzini, 2021/01/29
- [PULL 23/36] slirp: update to git master, Paolo Bonzini, 2021/01/29