[v2,25/44] net/virtio: make Vhost-user req sender consistent

Message ID 20210119212507.1043636-26-maxime.coquelin@redhat.com (mailing list archive)
State Superseded, archived
Delegated to: Maxime Coquelin
Headers
Series net/virtio: Virtio PMD rework |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Maxime Coquelin Jan. 19, 2021, 9:24 p.m. UTC
  This patch makes vhost_user_write() consistent with
vhost_user_read(), by passing a Vhost-user message
pointer instead of a buffer pointer and its length, which
is now calculated in the function.

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/net/virtio/virtio_user/vhost_user.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)
  

Comments

Chenbo Xia Jan. 21, 2021, 8:50 a.m. UTC | #1
> -----Original Message-----
> From: Maxime Coquelin <maxime.coquelin@redhat.com>
> Sent: Wednesday, January 20, 2021 5:25 AM
> To: dev@dpdk.org; Xia, Chenbo <chenbo.xia@intel.com>; olivier.matz@6wind.com;
> amorenoz@redhat.com; david.marchand@redhat.com
> Cc: Maxime Coquelin <maxime.coquelin@redhat.com>
> Subject: [PATCH v2 25/44] net/virtio: make Vhost-user req sender consistent
> 
> This patch makes vhost_user_write() consistent with
> vhost_user_read(), by passing a Vhost-user message
> pointer instead of a buffer pointer and its length, which
> is now calculated in the function.
> 
> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> ---
>  drivers/net/virtio/virtio_user/vhost_user.c | 10 ++++------
>  1 file changed, 4 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/net/virtio/virtio_user/vhost_user.c
> b/drivers/net/virtio/virtio_user/vhost_user.c
> index 350eed4182..55c813333a 100644
> --- a/drivers/net/virtio/virtio_user/vhost_user.c
> +++ b/drivers/net/virtio/virtio_user/vhost_user.c
> @@ -51,7 +51,7 @@ struct vhost_user_msg {
>  	(sizeof(struct vhost_user_msg) - VHOST_USER_HDR_SIZE)
> 
>  static int
> -vhost_user_write(int fd, void *buf, int len, int *fds, int fd_num)
> +vhost_user_write(int fd, struct vhost_user_msg *msg, int *fds, int fd_num)
>  {
>  	int r;
>  	struct msghdr msgh;
> @@ -63,8 +63,8 @@ vhost_user_write(int fd, void *buf, int len, int *fds, int
> fd_num)
>  	memset(&msgh, 0, sizeof(msgh));
>  	memset(control, 0, sizeof(control));
> 
> -	iov.iov_base = (uint8_t *)buf;
> -	iov.iov_len = len;
> +	iov.iov_base = (uint8_t *)msg;
> +	iov.iov_len = VHOST_USER_HDR_SIZE + msg->size;
> 
>  	msgh.msg_iov = &iov;
>  	msgh.msg_iovlen = 1;
> @@ -259,7 +259,6 @@ vhost_user_sock(struct virtio_user_dev *dev,
>  	int has_reply_ack = 0;
>  	int fds[VHOST_MEMORY_MAX_NREGIONS];
>  	int fd_num = 0;
> -	int len;
>  	int vhostfd = dev->vhostfd;
> 
>  	RTE_SET_USED(m);
> @@ -364,8 +363,7 @@ vhost_user_sock(struct virtio_user_dev *dev,
>  		return -1;
>  	}
> 
> -	len = VHOST_USER_HDR_SIZE + msg.size;
> -	if (vhost_user_write(vhostfd, &msg, len, fds, fd_num) < 0) {
> +	if (vhost_user_write(vhostfd, &msg, fds, fd_num) < 0) {
>  		PMD_DRV_LOG(ERR, "%s failed: %s",
>  			    vhost_msg_strings[req], strerror(errno));
>  		return -1;
> --
> 2.29.2

Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
  

Patch

diff --git a/drivers/net/virtio/virtio_user/vhost_user.c b/drivers/net/virtio/virtio_user/vhost_user.c
index 350eed4182..55c813333a 100644
--- a/drivers/net/virtio/virtio_user/vhost_user.c
+++ b/drivers/net/virtio/virtio_user/vhost_user.c
@@ -51,7 +51,7 @@  struct vhost_user_msg {
 	(sizeof(struct vhost_user_msg) - VHOST_USER_HDR_SIZE)
 
 static int
-vhost_user_write(int fd, void *buf, int len, int *fds, int fd_num)
+vhost_user_write(int fd, struct vhost_user_msg *msg, int *fds, int fd_num)
 {
 	int r;
 	struct msghdr msgh;
@@ -63,8 +63,8 @@  vhost_user_write(int fd, void *buf, int len, int *fds, int fd_num)
 	memset(&msgh, 0, sizeof(msgh));
 	memset(control, 0, sizeof(control));
 
-	iov.iov_base = (uint8_t *)buf;
-	iov.iov_len = len;
+	iov.iov_base = (uint8_t *)msg;
+	iov.iov_len = VHOST_USER_HDR_SIZE + msg->size;
 
 	msgh.msg_iov = &iov;
 	msgh.msg_iovlen = 1;
@@ -259,7 +259,6 @@  vhost_user_sock(struct virtio_user_dev *dev,
 	int has_reply_ack = 0;
 	int fds[VHOST_MEMORY_MAX_NREGIONS];
 	int fd_num = 0;
-	int len;
 	int vhostfd = dev->vhostfd;
 
 	RTE_SET_USED(m);
@@ -364,8 +363,7 @@  vhost_user_sock(struct virtio_user_dev *dev,
 		return -1;
 	}
 
-	len = VHOST_USER_HDR_SIZE + msg.size;
-	if (vhost_user_write(vhostfd, &msg, len, fds, fd_num) < 0) {
+	if (vhost_user_write(vhostfd, &msg, fds, fd_num) < 0) {
 		PMD_DRV_LOG(ERR, "%s failed: %s",
 			    vhost_msg_strings[req], strerror(errno));
 		return -1;