2016-10-14 17:34, Yuanhan Liu: > -static inline uint32_t __attribute__((always_inline)) > +static inline int __attribute__((always_inline)) > copy_mbuf_to_desc_mergeable(struct virtio_net *dev, struct vhost_virtqueue > *vq, > - uint16_t end_idx, struct rte_mbuf *m, > - struct buf_vector *buf_vec) > + struct rte_mbuf *m, struct buf_vector *buf_vec, > + uint16_t num_buffers) > { > struct virtio_net_hdr_mrg_rxbuf virtio_hdr = {{0, 0, 0, 0, 0, 0}, 0}; > uint32_t vec_idx = 0; > - uint16_t start_idx = vq->last_used_idx; > - uint16_t cur_idx = start_idx; > + uint16_t cur_idx = vq->last_used_idx; > uint64_t desc_addr; > uint32_t desc_chain_head; > uint32_t desc_chain_len; > @@ -394,21 +393,21 @@ copy_mbuf_to_desc_mergeable(struct virtio_net *dev, > struct vhost_virtqueue *vq, > struct rte_mbuf *hdr_mbuf; > > if (unlikely(m == NULL)) > - return 0; > + return -1; > > LOG_DEBUG(VHOST_DATA, "(%d) current index %d | end index %d\n", > dev->vid, cur_idx, end_idx);
There is a build error: lib/librte_vhost/virtio_net.c:399:22: error: ?end_idx? undeclared It is probably trivial and could be fixed directly in the already applied commit in next-virtio.