rte_vhost_driver_set_max_queue_num API returns early when
called for a Vhost-user device, as this API is intended to
limit the maximum number of queue pairs supported by VDUSE
devices. However, a log mentioning the maximim number of
queue pairs is being set is emitted unconditionally, which
may confuse the end user.

This patch moves this log after the backend type is
checked, so that it is only called with VDUSE backends.
The check on the requested value is also moved at the same
place.

Fixes: e1808999d36b ("vhost: restrict set max queue pair API to VDUSE")
Cc: sta...@dpdk.org

Signed-off-by: Maxime Coquelin <maxime.coque...@redhat.com>
---
 lib/vhost/socket.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/lib/vhost/socket.c b/lib/vhost/socket.c
index d29d15494c..07247907b0 100644
--- a/lib/vhost/socket.c
+++ b/lib/vhost/socket.c
@@ -844,13 +844,6 @@ rte_vhost_driver_set_max_queue_num(const char *path, 
uint32_t max_queue_pairs)
        struct vhost_user_socket *vsocket;
        int ret = 0;
 
-       VHOST_CONFIG_LOG(path, INFO, "Setting max queue pairs to %u", 
max_queue_pairs);
-
-       if (max_queue_pairs > VHOST_MAX_QUEUE_PAIRS) {
-               VHOST_CONFIG_LOG(path, ERR, "Library only supports up to %u 
queue pairs",
-                               VHOST_MAX_QUEUE_PAIRS);
-               return -1;
-       }
 
        pthread_mutex_lock(&vhost_user.mutex);
        vsocket = find_vhost_user_socket(path);
@@ -872,6 +865,15 @@ rte_vhost_driver_set_max_queue_num(const char *path, 
uint32_t max_queue_pairs)
                goto unlock_exit;
        }
 
+       VHOST_CONFIG_LOG(path, INFO, "Setting max queue pairs to %u", 
max_queue_pairs);
+
+       if (max_queue_pairs > VHOST_MAX_QUEUE_PAIRS) {
+               VHOST_CONFIG_LOG(path, ERR, "Library only supports up to %u 
queue pairs",
+                               VHOST_MAX_QUEUE_PAIRS);
+               ret = -1;
+               goto unlock_exit;
+       }
+
        vsocket->max_queue_pairs = max_queue_pairs;
 
 unlock_exit:
-- 
2.47.1

Reply via email to