On Wed, Sep 04, 2019 at 10:06:55AM +0800, Tiwei Bie wrote: > On Tue, Sep 03, 2019 at 11:04:22PM +0300, Johannes Berg wrote: > > From: Johannes Berg <johannes.b...@intel.com> > > > > It doesn't look like this could possibly work properly since > > VHOST_USER_PROTOCOL_F_SLAVE_SEND_FD is defined to 10, but the > > dev->protocol_features has a bitmap. I suppose the peer this > > was tested with also supported VHOST_USER_PROTOCOL_F_LOG_SHMFD, > > in which case the test would always be false, but nevertheless > > the code seems wrong. > > Ooops.. I tested `tests/vhost-user-bridge -H`. But as you > said it worked because VHOST_USER_PROTOCOL_F_LOG_SHMFD has > been negotiated. Thanks for spotting this! > > > > > Use has_feature() to fix this. > > > > Fixes: d84599f56c82 ("libvhost-user: support host notifier") > > Cc: qemu-sta...@nongnu.org > > > Signed-off-by: Johannes Berg <johannes.b...@intel.com> > > --- > > contrib/libvhost-user/libvhost-user.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/contrib/libvhost-user/libvhost-user.c > > b/contrib/libvhost-user/libvhost-user.c > > index 6a02eaffc672..fcf4a8a00ed2 100644 > > --- a/contrib/libvhost-user/libvhost-user.c > > +++ b/contrib/libvhost-user/libvhost-user.c > > @@ -1097,7 +1097,8 @@ bool vu_set_queue_host_notifier(VuDev *dev, VuVirtq > > *vq, int fd, > > > > vmsg.fd_num = fd_num; > > > > - if ((dev->protocol_features & VHOST_USER_PROTOCOL_F_SLAVE_SEND_FD) == > > 0) { > > + if (!has_feature(dev->protocol_features, > > + VHOST_USER_PROTOCOL_F_SLAVE_SEND_FD)) { > > We have both of has_feature() and vu_has_feature() called by > other code in this file directly. Not sure which one is preferred.. > Personally, I think vu_has_feature() might be better.
Thanks for the patch introducing vu_has_protocol_feature(). This fix looks good to me. Thanks a lot! I'm not the maintainer. But anyway, if this helps: Reviewed-by: Tiwei Bie <tiwei....@intel.com>