On Fri, Feb 19, 2016 at 09:32:41AM +0300, Ilya Maximets wrote: > Array of buf_vector's is just an array for temporary storing information > about available descriptors. It used only locally in virtio_dev_merge_rx() > and there is no reason for that array to be shared. > > Fix that by allocating local buf_vec inside virtio_dev_merge_rx(). > > Signed-off-by: Ilya Maximets <i.maximets at samsung.com> > --- > lib/librte_vhost/rte_virtio_net.h | 1 - > lib/librte_vhost/vhost_rxtx.c | 45 > ++++++++++++++++++++------------------- > 2 files changed, 23 insertions(+), 23 deletions(-) > > diff --git a/lib/librte_vhost/rte_virtio_net.h > b/lib/librte_vhost/rte_virtio_net.h > index 10dcb90..ae1e4fb 100644 > --- a/lib/librte_vhost/rte_virtio_net.h > +++ b/lib/librte_vhost/rte_virtio_net.h > @@ -91,7 +91,6 @@ struct vhost_virtqueue { > int kickfd; /**< Currently unused > as polling mode is enabled. */ > int enabled; > uint64_t reserved[16]; /**< Reserve some > spaces for future extension. */ > - struct buf_vector buf_vec[BUF_VECTOR_MAX]; /**< for > scatter RX. */ > } __rte_cache_aligned;
I like this kind of cleanup, however, it breaks ABI. --yliu