[v3] vhost: fix zero-copy cannot be enabled

Message ID 20200519092108.49275-1-xuan.ding@intel.com (mailing list archive)
State Superseded, archived
Headers
Series [v3] vhost: fix zero-copy cannot be enabled |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation success Compilation OK
ci/travis-robot success Travis build: passed

Commit Message

Ding, Xuan May 19, 2020, 9:21 a.m. UTC
  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")

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>
---

v3:
* Removed Cc to stable and added fixes label.

v2:
* Added the description of problem solved in commit log.
---
 lib/librte_vhost/socket.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Patch

diff --git a/lib/librte_vhost/socket.c b/lib/librte_vhost/socket.c
index bb8d0d780..0a66ef976 100644
--- a/lib/librte_vhost/socket.c
+++ b/lib/librte_vhost/socket.c
@@ -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;