net/virtio-user: fix vhost-kernel initialization
Checks
Commit Message
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.ling@intel.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
drivers/net/virtio/virtio_user/virtio_user_dev.c | 1 +
1 file changed, 1 insertion(+)
Comments
17/02/2023 13:31, Maxime Coquelin:
> 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.ling@intel.com>
> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Applied, thanks.
@@ -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;