Message ID | 20170721095553.10717-4-jfreimann@redhat.com |
---|---|
State | New |
Headers | show |
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
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);