aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkihiko Odaki <akihiko.odaki@daynix.com>2024-04-28 16:00:51 +0900
committerJason Wang <jasowang@redhat.com>2024-06-04 15:14:26 +0800
commit8c49756825dab430b17648637735c2736d23f778 (patch)
tree9be74c4576f71bb85d703a1c3b7c6024fcff0e55
parent283be5966eb7ec18fda3e95c979be620dfb8c72a (diff)
downloadqemu-8c49756825dab430b17648637735c2736d23f778.zip
qemu-8c49756825dab430b17648637735c2736d23f778.tar.gz
qemu-8c49756825dab430b17648637735c2736d23f778.tar.bz2
virtio-net: Add only one queue pair when realizing
Multiqueue usage is not negotiated yet when realizing. If more than one queue is added and the guest never requests to enable multiqueue, the extra queues will not be deleted when unrealizing and leak. Fixes: f9d6dbf0bf6e ("virtio-net: remove virtio queues if the guest doesn't support multiqueue") Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
-rw-r--r--hw/net/virtio-net.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index 3cee2ef..a8db8bf 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -3743,9 +3743,7 @@ static void virtio_net_device_realize(DeviceState *dev, Error **errp)
n->net_conf.tx_queue_size = MIN(virtio_net_max_tx_queue_size(n),
n->net_conf.tx_queue_size);
- for (i = 0; i < n->max_queue_pairs; i++) {
- virtio_net_add_queue(n, i);
- }
+ virtio_net_add_queue(n, 0);
n->ctrl_vq = virtio_add_queue(vdev, 64, virtio_net_handle_ctrl);
qemu_macaddr_default_if_unset(&n->nic_conf.macaddr);