net/virtio-user: fix vhost-kernel initialization

Message ID 20230217123119.145894-1-maxime.coquelin@redhat.com (mailing list archive)
State Accepted, archived
Delegated to: Maxime Coquelin
Headers
Series net/virtio-user: fix vhost-kernel initialization |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/iol-broadcom-Functional fail Functional Testing issues
ci/iol-mellanox-Performance success Performance Testing PASS
ci/intel-Testing success Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-intel-Functional fail Functional Testing issues
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-testing fail Testing issues
ci/iol-x86_64-unit-testing fail Testing issues
ci/github-robot: build success github build: passed
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS

Commit Message

Maxime Coquelin Feb. 17, 2023, 12:31 p.m. UTC
  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

Thomas Monjalon Feb. 17, 2023, 5:27 p.m. UTC | #1
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.
  

Patch

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;