[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 03/22] hw/virtio: handle un-configured shutdown in virtio-pci
From: |
Alex Bennée |
Subject: |
[PATCH v4 03/22] hw/virtio: handle un-configured shutdown in virtio-pci |
Date: |
Tue, 2 Aug 2022 10:49:51 +0100 |
The assert() protecting against leakage is a little aggressive and
causes needless crashes if a device is shutdown without having been
configured. In this case no descriptors are lost because none have
been assigned.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20220726192150.2435175-9-alex.bennee@linaro.org>
---
hw/virtio/virtio-pci.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 45327f0b31..5ce61f9b45 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -996,9 +996,14 @@ static int virtio_pci_set_guest_notifiers(DeviceState *d,
int nvqs, bool assign)
nvqs = MIN(nvqs, VIRTIO_QUEUE_MAX);
- /* When deassigning, pass a consistent nvqs value
- * to avoid leaking notifiers.
+ /*
+ * When deassigning, pass a consistent nvqs value to avoid leaking
+ * notifiers. But first check we've actually been configured, exit
+ * early if we haven't.
*/
+ if (!assign && !proxy->nvqs_with_notifiers) {
+ return 0;
+ }
assert(assign || nvqs == proxy->nvqs_with_notifiers);
proxy->nvqs_with_notifiers = nvqs;
--
2.30.2
- [PATCH v4 for 7.2 00/22] virtio-gpio and various virtio cleanups, Alex Bennée, 2022/08/02
- [PATCH v4 09/22] hw/virtio: add some vhost-user trace events, Alex Bennée, 2022/08/02
- [PATCH v4 03/22] hw/virtio: handle un-configured shutdown in virtio-pci,
Alex Bennée <=
- [PATCH v4 06/22] include/hw: document vhost_dev feature life-cycle, Alex Bennée, 2022/08/02
- [PATCH v4 01/22] hw/virtio: incorporate backend features in features, Alex Bennée, 2022/08/02
- [PATCH v4 07/22] hw/virtio: fix some coding style issues, Alex Bennée, 2022/08/02
- [PATCH v4 05/22] include/hw/virtio: more comment for VIRTIO_F_BAD_FEATURE, Alex Bennée, 2022/08/02
- [PATCH v4 17/22] tests/qtest: catch unhandled vhost-user messages, Alex Bennée, 2022/08/02
- [PATCH v4 18/22] tests/qtest: plain g_assert for VHOST_USER_F_PROTOCOL_FEATURES, Alex Bennée, 2022/08/02
- [PATCH v4 02/22] hw/virtio: gracefully handle unset vhost_dev vdev, Alex Bennée, 2022/08/02
- [PATCH v4 10/22] hw/virtio: move vm_running check to virtio_device_started, Alex Bennée, 2022/08/02
- [PATCH v4 04/22] hw/virtio: fix vhost_user_read tracepoint, Alex Bennée, 2022/08/02
- [PATCH v4 08/22] hw/virtio: log potentially buggy guest drivers, Alex Bennée, 2022/08/02