lib/rte_vhost: fix message handling

Message ID 20181016122717.66948-1-roy.fan.zhang@intel.com (mailing list archive)
State Rejected, archived
Delegated to: Maxime Coquelin
Headers
Series lib/rte_vhost: fix message handling |

Checks

Context Check Description
ci/Intel-compilation fail Compilation issues
ci/checkpatch success coding style OK

Commit Message

Fan Zhang Oct. 16, 2018, 12:27 p.m. UTC
  This patch fixes the bugs introduced by the message handling rework
patch. Previously some "get" message handlers did not have correct
return and one if statement was wrong.

Fixes: 2f270595c05d ("vhost: rework message handling as a callback array")
Cc: nicknickolaev@gmail.com

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
---
 lib/librte_vhost/vhost_user.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
  

Comments

Maxime Coquelin Oct. 16, 2018, 12:31 p.m. UTC | #1
Hi Fan,

On 10/16/2018 02:27 PM, Fan Zhang wrote:
> This patch fixes the bugs introduced by the message handling rework
> patch. Previously some "get" message handlers did not have correct
> return and one if statement was wrong.
> 
> Fixes: 2f270595c05d ("vhost: rework message handling as a callback array")
> Cc: nicknickolaev@gmail.com
> 
> Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
> ---
>   lib/librte_vhost/vhost_user.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 

Could you please have a try with latest next-virtio/master branch?
I fixed the issues in my postcopy live-migration series, and all
should be OK now.

Note that I also changed vhost-crypto's post handler callback so that
it returns enum vh_result type.

Regards,
Maxime
  
Fan Zhang Oct. 16, 2018, 12:53 p.m. UTC | #2
Hi Maxime,

Oh, sorry I didn't pull the virtio sub-tree to check.

Thanks a lot!

Regards,
Fan

> -----Original Message-----
> From: Maxime Coquelin [mailto:maxime.coquelin@redhat.com]
> Sent: Tuesday, October 16, 2018 1:31 PM
> To: Zhang, Roy Fan <roy.fan.zhang@intel.com>; dev@dpdk.org
> Cc: nicknickolaev@gmail.com
> Subject: Re: [PATCH] lib/rte_vhost: fix message handling
> 
> Hi Fan,
> 
> On 10/16/2018 02:27 PM, Fan Zhang wrote:
> > This patch fixes the bugs introduced by the message handling rework
> > patch. Previously some "get" message handlers did not have correct
> > return and one if statement was wrong.
> >
> > Fixes: 2f270595c05d ("vhost: rework message handling as a callback
> > array")
> > Cc: nicknickolaev@gmail.com
> >
> > Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
> > ---
> >   lib/librte_vhost/vhost_user.c | 6 +++---
> >   1 file changed, 3 insertions(+), 3 deletions(-)
> >
> 
> Could you please have a try with latest next-virtio/master branch?
> I fixed the issues in my postcopy live-migration series, and all should be OK
> now.
> 
> Note that I also changed vhost-crypto's post handler callback so that it
> returns enum vh_result type.
> 
> Regards,
> Maxime
  

Patch

diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
index 7ef3fb4a4..ac2912990 100644
--- a/lib/librte_vhost/vhost_user.c
+++ b/lib/librte_vhost/vhost_user.c
@@ -1161,7 +1161,7 @@  vhost_user_get_vring_base(struct virtio_net **pdev,
 
 	msg->size = sizeof(msg->payload.state);
 
-	return VH_RESULT_OK;
+	return VH_RESULT_REPLY;
 }
 
 /*
@@ -1218,7 +1218,7 @@  vhost_user_get_protocol_features(struct virtio_net **pdev,
 	msg->payload.u64 = protocol_features;
 	msg->size = sizeof(msg->payload.u64);
 
-	return VH_RESULT_OK;
+	return VH_RESULT_REPLY;
 }
 
 static int
@@ -1803,7 +1803,7 @@  vhost_user_msg_handler(int vid, int fd)
 		msg.payload.u64 = !!ret;
 		msg.size = sizeof(msg.payload.u64);
 		send_vhost_reply(fd, &msg);
-	} else if (ret) {
+	} else if (ret < 0) {
 		RTE_LOG(ERR, VHOST_CONFIG,
 			"vhost message handling failed.\n");
 		return -1;