vhost: fix zero-copy server mode
authorXuan Ding <xuan.ding@intel.com>
Tue, 19 May 2020 10:15:46 +0000 (10:15 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 19 May 2020 15:12:17 +0000 (17:12 +0200)
This patch fixes the situation where vhost-user cannot start as server
with dequeue_zero_copy enabled.

Using flag instead of vsocket->is_server to determine whether vhost-user
is in client mode. Because vsocket->is_server is not ready at this time.

Fixes: 715070ea10e6 ("vhost: prevent zero-copy with incompatible client mode")
Cc: stable@dpdk.org
Signed-off-by: Xuan Ding <xuan.ding@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
Tested-by: Yinan Wang <yinan.wang@intel.com>
lib/librte_vhost/socket.c

index bb8d0d7..0a66ef9 100644 (file)
@@ -926,7 +926,7 @@ rte_vhost_driver_register(const char *path, uint64_t flags)
                        ret = -1;
                        goto out_mutex;
                }
-               if (!vsocket->is_server) {
+               if ((flags & RTE_VHOST_USER_CLIENT) != 0) {
                        VHOST_LOG_CONFIG(ERR,
                        "error: zero copy is incompatible with vhost client mode\n");
                        ret = -1;