On Mon, Mar 27, 2017 at 07:46:32AM +0000, Tan, Jianfeng wrote: > > > diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c > > b/drivers/net/virtio/virtio_user/virtio_user_dev.c > > > index 9777d6b..cc6f557 100644 > > > --- a/drivers/net/virtio/virtio_user/virtio_user_dev.c > > > +++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c > > > @@ -176,6 +176,7 @@ virtio_user_start_device(struct virtio_user_dev > > *dev, uint8_t portid) > > > features &= ~(1ull << VIRTIO_NET_F_MAC); > > > /* Strip VIRTIO_NET_F_CTRL_VQ, as devices do not really need to > > know */ > > > features &= ~(1ull << VIRTIO_NET_F_CTRL_VQ); > > > + features &= ~(1ull << VIRTIO_NET_F_STATUS); > > > ret = dev->ops->send_request(dev, VHOST_USER_SET_FEATURES, > > &features); > > > if (ret < 0) > > > goto error; > > > diff --git a/drivers/net/virtio/virtio_user_ethdev.c > > b/drivers/net/virtio/virtio_user_ethdev.c > > > index fa79419..fbdd0a8 100644 > > > --- a/drivers/net/virtio/virtio_user_ethdev.c > > > +++ b/drivers/net/virtio/virtio_user_ethdev.c > > > @@ -121,7 +121,8 @@ virtio_user_get_features(struct virtio_hw *hw) > > > struct virtio_user_dev *dev = virtio_user_get_dev(hw); > > > > > > /* unmask feature bits defined in vhost user protocol */ > > > - return dev->device_features & > > VIRTIO_PMD_SUPPORTED_GUEST_FEATURES; > > > + return (dev->device_features | (1 << VIRTIO_NET_F_STATUS)) > > > + & VIRTIO_PMD_SUPPORTED_GUEST_FEATURES; > > > > Why not handle the features at virtio_user_dev_init()? > > You mean add VIRTIO_NET_F_STATUS when get_features from device? Yes, we could > do that there. But we originally add device_features to only record features > supported by device. >
Aren't you adding the F_STATUS features to this device? --yliu