From: Jens Freimann <jfreiman@redhat.com>
End processing of messages when VHOST_USER_NO_MESSAGE
is received.
Without this we run into a vubr_panic() call and get
"PANIC: Unhandled request: 0"
Signed-off-by: Jens Freimann <jfreiman@redhat.com>
---
contrib/libvhost-user/libvhost-user.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/contrib/libvhost-user/libvhost-user.c b/contrib/libvhost-user/libvhost-user.c
index 9efb9da..85523ca 100644
--- a/contrib/libvhost-user/libvhost-user.c
+++ b/contrib/libvhost-user/libvhost-user.c
@@ -161,7 +161,7 @@ vu_message_read(VuDev *dev, int conn_fd, VhostUserMsg *vmsg)
rc = recvmsg(conn_fd, &msg, 0);
} while (rc < 0 && (errno == EINTR || errno == EAGAIN));
- if (rc <= 0) {
+ if (rc < 0) {
vu_panic(dev, "Error while recvmsg: %s", strerror(errno));
return false;
}
@@ -806,6 +806,8 @@ vu_process_message(VuDev *dev, VhostUserMsg *vmsg)
return vu_get_queue_num_exec(dev, vmsg);
case VHOST_USER_SET_VRING_ENABLE:
return vu_set_vring_enable_exec(dev, vmsg);
+ case VHOST_USER_NONE:
+ return true;
default:
vmsg_close_fds(vmsg);
vu_panic(dev, "Unhandled request: %d", vmsg->request);
--
2.9.4
On Fri, Jul 21, 2017 at 11:58 AM Jens Freimann <jfreimann@redhat.com> wrote:
> From: Jens Freimann <jfreiman@redhat.com>
>
> End processing of messages when VHOST_USER_NO_MESSAGE
> is received.
>
>
What is VHOST_USER_NO_MESSAGE?
> Without this we run into a vubr_panic() call and get
> "PANIC: Unhandled request: 0"
>
> Signed-off-by: Jens Freimann <jfreiman@redhat.com>
>
---
> contrib/libvhost-user/libvhost-user.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/contrib/libvhost-user/libvhost-user.c
> b/contrib/libvhost-user/libvhost-user.c
> index 9efb9da..85523ca 100644
> --- a/contrib/libvhost-user/libvhost-user.c
> +++ b/contrib/libvhost-user/libvhost-user.c
> @@ -161,7 +161,7 @@ vu_message_read(VuDev *dev, int conn_fd, VhostUserMsg
> *vmsg)
> rc = recvmsg(conn_fd, &msg, 0);
> } while (rc < 0 && (errno == EINTR || errno == EAGAIN));
>
> - if (rc <= 0) {
> + if (rc < 0) {
>
that's looks fine
> vu_panic(dev, "Error while recvmsg: %s", strerror(errno));
> return false;
> }
> @@ -806,6 +806,8 @@ vu_process_message(VuDev *dev, VhostUserMsg *vmsg)
> return vu_get_queue_num_exec(dev, vmsg);
> case VHOST_USER_SET_VRING_ENABLE:
> return vu_set_vring_enable_exec(dev, vmsg);
> + case VHOST_USER_NONE:
> + return true;
>
return true means 'reply_requested', is that what you want so
vu_message_write() is called? If so, please explain in commit message.
> default:
> vmsg_close_fds(vmsg);
> vu_panic(dev, "Unhandled request: %d", vmsg->request);
> --
> 2.9.4
>
>
> --
Marc-André Lureau
On Fri, Jul 21, 2017 at 10:59:23AM +0000, Marc-André Lureau wrote:
>On Fri, Jul 21, 2017 at 11:58 AM Jens Freimann <jfreimann@redhat.com> wrote:
>
>> From: Jens Freimann <jfreiman@redhat.com>
>>
>> End processing of messages when VHOST_USER_NO_MESSAGE
>> is received.
>>
>>
>What is VHOST_USER_NO_MESSAGE?
I meant VHOST_USER_NONE. Will fix in next versionn.
>
>> Without this we run into a vubr_panic() call and get
>> "PANIC: Unhandled request: 0"
>>
>> Signed-off-by: Jens Freimann <jfreiman@redhat.com>
>>
>
>---
>> contrib/libvhost-user/libvhost-user.c | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/contrib/libvhost-user/libvhost-user.c
>> b/contrib/libvhost-user/libvhost-user.c
>> index 9efb9da..85523ca 100644
>> --- a/contrib/libvhost-user/libvhost-user.c
>> +++ b/contrib/libvhost-user/libvhost-user.c
>> @@ -161,7 +161,7 @@ vu_message_read(VuDev *dev, int conn_fd, VhostUserMsg
>> *vmsg)
>> rc = recvmsg(conn_fd, &msg, 0);
>> } while (rc < 0 && (errno == EINTR || errno == EAGAIN));
>>
>> - if (rc <= 0) {
>> + if (rc < 0) {
>>
>
>that's looks fine
>
>
>> vu_panic(dev, "Error while recvmsg: %s", strerror(errno));
>> return false;
>> }
>> @@ -806,6 +806,8 @@ vu_process_message(VuDev *dev, VhostUserMsg *vmsg)
>> return vu_get_queue_num_exec(dev, vmsg);
>> case VHOST_USER_SET_VRING_ENABLE:
>> return vu_set_vring_enable_exec(dev, vmsg);
>> + case VHOST_USER_NONE:
>> + return true;
>>
>
>return true means 'reply_requested', is that what you want so
>vu_message_write() is called? If so, please explain in commit message.
No reply needed. I'll change it to return false.
Thanks for the review!
regards,
Jens
© 2016 - 2026 Red Hat, Inc.