This patch fixes a regression causing devices with
Vhost-kernel backends initialization to fail.

Indeed, Vhost-kernel backend init expects
dev->max_queue_pairs to be set at setup time, while its
assignment was moved after backend setup when adding
control queue support for Vhost-vdpa backends.

It is safe to set dev->max_queue_pairs early for
Vhost-kernel backends as if the backend does not support
multiqueue, its setup will fail.

Bugzilla ID: 1161
Fixes: 7be724856315 ("net/virtio-user: get max number of queue pairs from 
device")

Reported-by: Wei Ling <weix.l...@intel.com>
Signed-off-by: Maxime Coquelin <maxime.coque...@redhat.com>
---
 drivers/net/virtio/virtio_user/virtio_user_dev.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c 
b/drivers/net/virtio/virtio_user/virtio_user_dev.c
index ccb4d7326b..f46a131b5c 100644
--- a/drivers/net/virtio/virtio_user/virtio_user_dev.c
+++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c
@@ -689,6 +689,7 @@ virtio_user_dev_init(struct virtio_user_dev *dev, char 
*path, uint16_t queues,
 
        dev->started = 0;
        dev->queue_pairs = 1; /* mq disabled by default */
+       dev->max_queue_pairs = queues; /* initialize to user requested value 
for kernel backend */
        dev->queue_size = queue_size;
        dev->is_server = server;
        dev->mac_specified = 0;
-- 
2.39.1

Reply via email to