New upstream version 17.11-rc3
[deb_dpdk.git] / drivers / net / virtio / virtio_rxtx_simple_sse.c
index 87bb5c6..94f6514 100644 (file)
@@ -46,7 +46,6 @@
 #include <rte_ethdev.h>
 #include <rte_errno.h>
 #include <rte_memory.h>
-#include <rte_memzone.h>
 #include <rte_mempool.h>
 #include <rte_malloc.h>
 #include <rte_mbuf.h>
@@ -74,12 +73,13 @@ virtio_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
 {
        struct virtnet_rx *rxvq = rx_queue;
        struct virtqueue *vq = rxvq->vq;
+       struct virtio_hw *hw = vq->hw;
        uint16_t nb_used;
        uint16_t desc_idx;
        struct vring_used_elem *rused;
        struct rte_mbuf **sw_ring;
        struct rte_mbuf **sw_ring_end;
-       uint16_t nb_pkts_received;
+       uint16_t nb_pkts_received = 0;
        __m128i shuf_msk1, shuf_msk2, len_adjust;
 
        shuf_msk1 = _mm_set_epi8(
@@ -109,6 +109,9 @@ virtio_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
                0, (uint16_t)-vq->hw->vtnet_hdr_size,
                0, 0);
 
+       if (unlikely(hw->started == 0))
+               return nb_pkts_received;
+
        if (unlikely(nb_pkts < RTE_VIRTIO_DESC_PER_LOOP))
                return 0;