summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Mickael Guerin <jean-mickael.guerin@6wind.com>2014-12-04 15:26:20 +0100
committerThomas Monjalon <thomas.monjalon@6wind.com>2014-12-05 22:49:25 +0100
commit661dfdf09ffc822621722ae9af46f1d7e080d0a5 (patch)
tree782d6b202c06404ed6b01460e620c4b30cf7f31f
parentdc018ce69ba30083e75a0cbfe73d8ec6a630f9c5 (diff)
downloaddpdk-661dfdf09ffc822621722ae9af46f1d7e080d0a5.zip
dpdk-661dfdf09ffc822621722ae9af46f1d7e080d0a5.tar.gz
dpdk-661dfdf09ffc822621722ae9af46f1d7e080d0a5.tar.xz
ixgbe: fix setup of mbuf initializer template
Add a compiler barrier to make sure all fields covered by the marker rearm_data are assigned before the read. Fixes: 0ff3324da2 ("ixgbe: rework vector pmd following mbuf changes") Signed-off-by: Jean-Mickael Guerin <jean-mickael.guerin@6wind.com> Acked-by: David Marchand <david.marchand@6wind.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
-rw-r--r--lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c b/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
index 579bc46..c1b5a78 100644
--- a/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
+++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
@@ -739,6 +739,9 @@ ixgbe_rxq_vec_setup(struct igb_rx_queue *rxq)
mb_def.buf_len = rxq->mb_pool->elt_size - sizeof(struct rte_mbuf);
mb_def.port = rxq->port_id;
rte_mbuf_refcnt_set(&mb_def, 1);
+
+ /* prevent compiler reordering: rearm_data covers previous fields */
+ rte_compiler_barrier();
rxq->mbuf_initializer = *((uint64_t *)&mb_def.rearm_data);
return 0;
}