virtio: fix Rx mbuf initialization
authorStephen Hemminger <stephen@networkplumber.org>
Fri, 4 Dec 2015 01:12:53 +0000 (17:12 -0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 7 Dec 2015 00:03:12 +0000 (01:03 +0100)
The virtio driver was not initializing all the fields in
the receive mbuf. This would cause bugs where previous usage
of mbuf would leave stale TCI and offload flags.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
drivers/net/virtio/virtio_rxtx.c

index 5770fa2..466fee6 100644 (file)
@@ -611,6 +611,8 @@ virtio_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
 
                rxm->port = rxvq->port_id;
                rxm->data_off = RTE_PKTMBUF_HEADROOM;
+               rxm->ol_flags = 0;
+               rxm->vlan_tci = 0;
 
                rxm->nb_segs = 1;
                rxm->next = NULL;
@@ -731,6 +733,8 @@ virtio_recv_mergeable_pkts(void *rx_queue,
                rxm->data_off = RTE_PKTMBUF_HEADROOM;
                rxm->nb_segs = seg_num;
                rxm->next = NULL;
+               rxm->ol_flags = 0;
+               rxm->vlan_tci = 0;
                rxm->pkt_len = (uint32_t)(len[0] - hdr_size);
                rxm->data_len = (uint16_t)(len[0] - hdr_size);