> -----Original Message----- > From: Yuanhan Liu [mailto:yuanhan.liu at linux.intel.com] > Sent: Monday, August 24, 2015 11:55 AM > To: dev at dpdk.org > Cc: Xie, Huawei; Ouyang, Changchun; Yuanhan Liu > Subject: [PATCH 4/4] vhost: define callfd and kickfd as int type > > So that we can remove the redundant (int) cast. > > Signed-off-by: Yuanhan Liu <yuanhan.liu at linux.intel.com> > --- > examples/vhost/main.c | 6 ++--- > lib/librte_vhost/rte_virtio_net.h | 4 ++-- > lib/librte_vhost/vhost_rxtx.c | 6 ++--- > lib/librte_vhost/vhost_user/virtio-net-user.c | 16 +++++++------- > lib/librte_vhost/virtio-net.c | 32 > +++++++++++++-------------- > 5 files changed, 32 insertions(+), 32 deletions(-) > > diff --git a/examples/vhost/main.c b/examples/vhost/main.c index > 1b137b9..b090b25 100644 > --- a/examples/vhost/main.c > +++ b/examples/vhost/main.c > @@ -1433,7 +1433,7 @@ put_desc_to_used_list_zcp(struct vhost_virtqueue > *vq, uint16_t desc_idx) > > /* Kick the guest if necessary. */ > if (!(vq->avail->flags & VRING_AVAIL_F_NO_INTERRUPT)) > - eventfd_write((int)vq->callfd, 1); > + eventfd_write(vq->callfd, 1);
Don't we need type conversion for '1' to eventfd_t here? > } > > /* > @@ -1626,7 +1626,7 @@ txmbuf_clean_zcp(struct virtio_net *dev, struct > vpool *vpool) > > /* Kick guest if required. */ > if (!(vq->avail->flags & VRING_AVAIL_F_NO_INTERRUPT)) > - eventfd_write((int)vq->callfd, 1); > + eventfd_write(vq->callfd, 1); Same as above > > return 0; > } > @@ -1774,7 +1774,7 @@ virtio_dev_rx_zcp(struct virtio_net *dev, struct > rte_mbuf **pkts, > > /* Kick the guest if necessary. */ > if (!(vq->avail->flags & VRING_AVAIL_F_NO_INTERRUPT)) > - eventfd_write((int)vq->callfd, 1); > + eventfd_write(vq->callfd, 1); Same as above > > return count; > } > diff --git a/lib/librte_vhost/rte_virtio_net.h > b/lib/librte_vhost/rte_virtio_net.h > index b9bf320..a037c15 100644 > --- a/lib/librte_vhost/rte_virtio_net.h > +++ b/lib/librte_vhost/rte_virtio_net.h > @@ -87,8 +87,8 @@ struct vhost_virtqueue { > uint16_t vhost_hlen; /**< Vhost header > length (varies depending on RX merge buffers. */ > volatile uint16_t last_used_idx; /**< Last index used > on the available ring */ > volatile uint16_t last_used_idx_res; /**< Used for > multiple devices reserving buffers. */ > - eventfd_t callfd; /**< Used to notify > the guest (trigger interrupt). */ > - eventfd_t kickfd; /**< Currently > unused as polling mode is enabled. */ > + int callfd; /**< Used to notify > the guest (trigger interrupt). */ > + int kickfd; /**< Currently > unused as polling mode is enabled. */ > struct buf_vector buf_vec[BUF_VECTOR_MAX]; /**< for > scatter RX. */ > } __rte_cache_aligned; > > diff --git a/lib/librte_vhost/vhost_rxtx.c b/lib/librte_vhost/vhost_rxtx.c > index d412293..887cdb6 100644 > --- a/lib/librte_vhost/vhost_rxtx.c > +++ b/lib/librte_vhost/vhost_rxtx.c > @@ -230,7 +230,7 @@ virtio_dev_rx(struct virtio_net *dev, uint16_t > queue_id, > > /* Kick the guest if necessary. */ > if (!(vq->avail->flags & VRING_AVAIL_F_NO_INTERRUPT)) > - eventfd_write((int)vq->callfd, 1); > + eventfd_write(vq->callfd, 1); > return count; > } > > @@ -529,7 +529,7 @@ virtio_dev_merge_rx(struct virtio_net *dev, uint16_t > queue_id, > > /* Kick the guest if necessary. */ > if (!(vq->avail->flags & VRING_AVAIL_F_NO_INTERRUPT)) > - eventfd_write((int)vq->callfd, 1); > + eventfd_write(vq->callfd, 1); > } > > return count; > @@ -752,6 +752,6 @@ rte_vhost_dequeue_burst(struct virtio_net *dev, > uint16_t queue_id, > vq->used->idx += entry_success; > /* Kick guest if required. */ > if (!(vq->avail->flags & VRING_AVAIL_F_NO_INTERRUPT)) > - eventfd_write((int)vq->callfd, 1); > + eventfd_write(vq->callfd, 1); > return entry_success; > } > diff --git a/lib/librte_vhost/vhost_user/virtio-net-user.c > b/lib/librte_vhost/vhost_user/virtio-net-user.c > index c1ffc38..4689927 100644 > --- a/lib/librte_vhost/vhost_user/virtio-net-user.c > +++ b/lib/librte_vhost/vhost_user/virtio-net-user.c > @@ -214,10 +214,10 @@ virtio_is_ready(struct virtio_net *dev) > rvq = dev->virtqueue[VIRTIO_RXQ]; > tvq = dev->virtqueue[VIRTIO_TXQ]; > if (rvq && tvq && rvq->desc && tvq->desc && > - (rvq->kickfd != (eventfd_t)-1) && > - (rvq->callfd != (eventfd_t)-1) && > - (tvq->kickfd != (eventfd_t)-1) && > - (tvq->callfd != (eventfd_t)-1)) { > + (rvq->kickfd != -1) && > + (rvq->callfd != -1) && > + (tvq->kickfd != -1) && > + (tvq->callfd != -1)) { > RTE_LOG(INFO, VHOST_CONFIG, > "virtio is now ready for processing.\n"); > return 1; > @@ -290,13 +290,13 @@ user_get_vring_base(struct vhost_device_ctx ctx, > * sent and only sent in vhost_vring_stop. > * TODO: cleanup the vring, it isn't usable since here. > */ > - if (((int)dev->virtqueue[VIRTIO_RXQ]->kickfd) >= 0) { > + if ((dev->virtqueue[VIRTIO_RXQ]->kickfd) >= 0) { > close(dev->virtqueue[VIRTIO_RXQ]->kickfd); > - dev->virtqueue[VIRTIO_RXQ]->kickfd = (eventfd_t)-1; > + dev->virtqueue[VIRTIO_RXQ]->kickfd = -1; > } > - if (((int)dev->virtqueue[VIRTIO_TXQ]->kickfd) >= 0) { > + if ((dev->virtqueue[VIRTIO_TXQ]->kickfd) >= 0) { > close(dev->virtqueue[VIRTIO_TXQ]->kickfd); > - dev->virtqueue[VIRTIO_TXQ]->kickfd = (eventfd_t)-1; > + dev->virtqueue[VIRTIO_TXQ]->kickfd = -1; > } > > return 0; > diff --git a/lib/librte_vhost/virtio-net.c b/lib/librte_vhost/virtio-net.c > index > b670992..d0f1764 100644 > --- a/lib/librte_vhost/virtio-net.c > +++ b/lib/librte_vhost/virtio-net.c > @@ -190,14 +190,14 @@ cleanup_device(struct virtio_net *dev) > } > > /* Close any event notifiers opened by device. */ > - if ((int)dev->virtqueue[VIRTIO_RXQ]->callfd >= 0) > - close((int)dev->virtqueue[VIRTIO_RXQ]->callfd); > - if ((int)dev->virtqueue[VIRTIO_RXQ]->kickfd >= 0) > - close((int)dev->virtqueue[VIRTIO_RXQ]->kickfd); > - if ((int)dev->virtqueue[VIRTIO_TXQ]->callfd >= 0) > - close((int)dev->virtqueue[VIRTIO_TXQ]->callfd); > - if ((int)dev->virtqueue[VIRTIO_TXQ]->kickfd >= 0) > - close((int)dev->virtqueue[VIRTIO_TXQ]->kickfd); > + if (dev->virtqueue[VIRTIO_RXQ]->callfd >= 0) > + close(dev->virtqueue[VIRTIO_RXQ]->callfd); > + if (dev->virtqueue[VIRTIO_RXQ]->kickfd >= 0) > + close(dev->virtqueue[VIRTIO_RXQ]->kickfd); > + if (dev->virtqueue[VIRTIO_TXQ]->callfd >= 0) > + close(dev->virtqueue[VIRTIO_TXQ]->callfd); > + if (dev->virtqueue[VIRTIO_TXQ]->kickfd >= 0) > + close(dev->virtqueue[VIRTIO_TXQ]->kickfd); > } > > /* > @@ -261,10 +261,10 @@ init_device(struct virtio_net *dev) > memset(dev->virtqueue[VIRTIO_RXQ], 0, sizeof(struct > vhost_virtqueue)); > memset(dev->virtqueue[VIRTIO_TXQ], 0, sizeof(struct > vhost_virtqueue)); > > - dev->virtqueue[VIRTIO_RXQ]->kickfd = (eventfd_t)-1; > - dev->virtqueue[VIRTIO_RXQ]->callfd = (eventfd_t)-1; > - dev->virtqueue[VIRTIO_TXQ]->kickfd = (eventfd_t)-1; > - dev->virtqueue[VIRTIO_TXQ]->callfd = (eventfd_t)-1; > + dev->virtqueue[VIRTIO_RXQ]->kickfd = -1; > + dev->virtqueue[VIRTIO_RXQ]->callfd = -1; > + dev->virtqueue[VIRTIO_TXQ]->kickfd = -1; > + dev->virtqueue[VIRTIO_TXQ]->callfd = -1; > > /* Backends are set to -1 indicating an inactive device. */ > dev->virtqueue[VIRTIO_RXQ]->backend = VIRTIO_DEV_STOPPED; > @@ -685,8 +685,8 @@ set_vring_call(struct vhost_device_ctx ctx, struct > vhost_vring_file *file) > /* file->index refers to the queue index. The txq is 1, rxq is 0. */ > vq = dev->virtqueue[file->index]; > > - if ((int)vq->callfd >= 0) > - close((int)vq->callfd); > + if (vq->callfd >= 0) > + close(vq->callfd); > > vq->callfd = file->fd; > > @@ -711,8 +711,8 @@ set_vring_kick(struct vhost_device_ctx ctx, struct > vhost_vring_file *file) > /* file->index refers to the queue index. The txq is 1, rxq is 0. */ > vq = dev->virtqueue[file->index]; > > - if ((int)vq->kickfd >= 0) > - close((int)vq->kickfd); > + if (vq->kickfd >= 0) > + close(vq->kickfd); > > vq->kickfd = file->fd; > > -- > 1.9.0